La programación Java (basada en una interfaz gráfica) lee datos de un archivo y los muestra en un cuadro de texto
Primero cree un archivo de texto, por ejemplo, en el directorio raíz de la unidad D, con el nombre: int.txt, y luego escriba una clase Java CalcNumber.java.
********************************************* *** **********************
El texto en int.txt es el siguiente:
1? 2?3?4 ?5?6?7?8?9?10
11?12?13?14?15?16?17?18?19?20
21?22?23 ?24?25?26?27?28?29?30
31?32?33?34?35?36?37?38?39?40
41?42 ?43?44?45?46?47?48?49?50
************************ ******** *************************************
El código de la clase CalcNumber.java es el siguiente:
import?java.awt.BorderLayout;
import?java.awt.Dimension;
import?java .awt.GridLayout;
importar?java.awt.Toolkit;
importar?java.awt.event.ActionEvent;
importar?java.awt. event.ActionListener;
importar?java.io.BufferedReader;
importar?java.io.FileNotFoundException;
importar?java.io.FileReader;
importar?java .io.IOException;
importar?javax.swing.BorderFactory;
importar?javax.swing.JButton;
importar?javax.swing.JFrame;
importar?javax.swing.JPanel;
importar?javax.swing.JScrollPane;
importar?javax. swing.JTextArea;
importar?javax.swing.UIManager;
¿público?clase?CalcNumber?extiende?JFrame?{ JTextArea?in; JTextArea?suText; ?CalcNumber()?{ this.setTitle ("Calcular números primos y compuestos"); //Cuadro de entrada en?=?new?JTextArea(4,?1); in.setAutoscrolls(true); =?new?JScrollPane(in); en. setBorder(BorderFactory.createBevelBorder(1)); JPanel?upper?=?new?JPanel(new?BorderLayout()); imp?=?new?JButton("Importar texto");
imp.addActionListener(new?ActionListener()?{
public?void?actionPerformed(ActionEvent?e)?{
probar?{ BufferedReader?br?=?new?BufferedReader( new?FileReader(
"d:\\int.txt")); String?s; while?((s?=?br.readLine())?!=?null)?{ en .setText(in.getText()? ?"\n"? ?s); } br.close();
}?catch?(FileNotFoundException?e1)?{ e1.printStackTrace();
}?catch?(IOException?e2)?{ e2.printStackTrace();
}
} }); ?JButton("Iniciar dos hilos y calcular"); start.addActionListener(new?CalcActionListener()); JPanel?buttonP?=?new?JPanel(); /?ResultJPanel?result?=?new?JPanel(new?GridLayout(1,?2)); JPanel?suPanel?=?new?JPanel(); suPanel.setBorder(BorderFactory.createTitledBorder("Los siguientes son números primos" )); JPanel?hePanel?=?new?JPanel(); hePanel.setBorder(BorderFactory.createTitledBorder("El siguiente es un número compuesto")); =?nuevo?JTextArea(4,?25); JScrollPane?suScroll?=?nuevo?JScrollPane(suText); suText.setBorder(BorderFactory.createBevelBorder(1)); ; JScrollPane ?heScroll?=?new?JScrollPane(heText); heText.setBorder(BorderFactory.createBevelBorder(1)); suPanel.add(suScroll.add(heScroll //?Total JPanel?all?=? new? JPanel(new?GridLayout(2,?1,?2,?2)); all.setBorder(BorderFactory.createTitledBorder("Calcular números primos y compuestos")); (resultado); this.add(botónP,?BorderLayo
ut.SOUTH); this.add(all,?BorderLayout.CENTER); //this.setSize(400,?300); this.pack(); pantalla?=?tool.getScreenSize(); this.setLocation(screen.width?/?2?-?this.getWidth()?/?2,?screen.height
/?2?- ?this.getHeight()?/?2); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } clase?CalcActionListener?implements?ActionListener,?Runnable?{ public?void?actionPerformed(ActionEvent?e )?{
Subproceso?suSubproceso?=?nuevo?Subproceso(nuevo?CalcActionListener(),?"su");
Subproceso?heSubproceso?=?nuevo?Subproceso(nuevo ?CalcActionListener(),?"él");
suThread.start();
heThread.start() } public?void?run()?{
String?s?=?in.getText();
String[]?arr?=?s.split("\\s");
StringBuffer ?su?=?new?StringBuffer();
StringBuffer?he?=?new?StringBuffer();
para?(int?i?=?0;?i ?lt;?arr.length;?i )?{
boolean?flag?=?false;
if?(!arr[i].equals("")? amp;amp;?arr[i]?!=?null)?{ int?n?=?Integer.valueOf(arr[i]); para?(int?j?=?2;?j?lt;? n;?j )?{ si?(n??j?==?0)?{
bandera?=?true; } } si?(Thread.currentThread().getName(). es igual("su")
amp;amp;?flag?==?false)?{ su?=?su.append("?"? ?n } if?(Thread.currentThread); ().getName().equals("él")
amp;amp;?flag?==?true)?{ él?=?él.append("?"? ?n); }
}
}
¿si?(Thread.currentThread().getName().equals("su"))?{
suText.setText(n
ew?String(su));
}?else?{
heText.setText(new?String(he));
} } } público ?static?void?main(String[]?args)?throws?Exception?{ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); CalcNumber?c?=?new?CalcNumber() }
}
****************************************** **********************
Los resultados de ejecución son los siguientes: