英文:
Show multiple details in console, but not in textarea. How to show specific lines in textarea
问题
class search extends JFrame {
private Container container;
private Font font, font2;
private JLabel label;
private JTextField textField;
private JButton search;
private JTextArea textarea;
search() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(100, 40, 600, 380);
this.setTitle("SEARCH");
container = this.getContentPane();
container.setLayout(null);
font = new Font("Courier New", Font.BOLD, 14);
font2 = new Font("Courier New", Font.BOLD, 18);
label = new JLabel("SEARCH : ");
label.setBounds(40, 20, 150, 50);
label.setFont(font);
container.add(label);
textField = new JTextField();
textField.setBounds(140, 25, 200, 40);
textField.setFont(font2);
container.add(textField);
search = new JButton("SEARCH");
search.setBounds(370, 25, 110, 37);
search.setFont(font);
container.add(search);
textarea = new JTextArea();
textarea.setBounds(40, 85, 500, 200);
textarea.setFont(font2);
container.add(textarea);
search.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
String x = textField.getText();
try {
File file = new File("allinfo.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
String s = reader.readLine();
StringBuilder detailsToShow = new StringBuilder(); // Store details to display in textarea
while (s != null) {
String string[] = s.split(" ");
String a = string[0];
String b = string[1];
String c = string[2];
String d = string[3];
String f = a + " " + b + " " + c + " " + d;
if (x.equals(a)) {
detailsToShow.append(f).append("\n"); // Append the details to display
}
s = reader.readLine();
}
reader.close();
textarea.setText(detailsToShow.toString()); // Set all details in the textarea
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
public static void main(String[] args) {
search frame = new search();
frame.setVisible(true);
}
}
英文:
class search extends JFrame{
private Container container;
private Font font,font2;
private JLabel label;
private JTextField textField;
private JButton search;
private JTextArea textarea;
search(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(100,40,600,380);
this.setTitle("SEARCH");
container = this.getContentPane();
container.setLayout(null);
font = new Font("Courier New",Font.BOLD,14);
font2 = new Font("Courier New",Font.BOLD,18);
label = new JLabel("SEARCH : ");
label.setBounds(40,20,150,50);
label.setFont(font);
container.add(label);
textField = new JTextField();
textField.setBounds(140,25,200,40);
textField.setFont(font2);
container.add(textField);
search = new JButton("SEARCH");
search.setBounds(370,25,110,37);
search.setFont(font);
container.add(search);
textarea = new JTextArea();
textarea.setBounds(40,85,500,200);
textarea.setFont(font2);
container.add(textarea);
search.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
String x = textField.getText();
try{
File file = new File("allinfo.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
String s = reader.readLine();
while(s!=null){
String string[] = s.split(" ");
String a = string[0];
String b = string[1];
String c = string[2];
String d = string[3];
String f = a+" "+b+" "+c+" "+d;
if (x.equals(a)){
System.out.println(f);
textarea.setText(f);
}
s = reader.readLine();
}
}catch (FileNotFoundException e){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}
}
});
}
public static void main(String[] args) {
search frame = new search();
frame.setVisible(true);
}
}
It is a search option where I can search for a person's name. If there are two people who have the same name, both the option should show in the text area, but the text area show only one person details. But the console is printing all personal details. I need help with how I can show all the details in textarea.
答案1
得分: 0
不是用
textarea.setText(f);
而是用
textarea.append(f + "\n");
英文:
Instead of
textarea.setText(f);
use
textarea.append(f + "\n");
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论