Red de conocimiento informático - Aprendizaje de programación - La programación Java (basada en una interfaz gráfica) lee datos de un archivo y los muestra en un cuadro de texto

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: