关于java window builder
发布网友
发布时间:2022-05-02 03:21
我来回答
共1个回答
热心网友
时间:2022-06-27 14:45
JTextArea是文本域, 可以调用setText(String str)方法来设置文本域的文字;
也可以使用append(String str)来追加文字;
当文字很多的时候, append方法就需要调用太多次,为了性能可以使用StringBuilder来拼接文字,然后调用setText方法来设置文字
参考代码
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import javax.swing.*;
public class SearchFrame extends JFrame implements ActionListener{
private JTextArea jta;
private JButton jbSearch, jbRest;
private JTextField jtf;
public SearchFrame() {
JPanel jpn = new JPanel();
JLabel jl = new JLabel("请输入姓名来查询");
jtf = new JTextField(8);
jbSearch = new JButton("查询");
jbSearch.addActionListener(this);
jpn.add(jl);
jpn.add(jtf);
jpn.add(jbSearch);
add(jpn, BorderLayout.NORTH);
jta = new JTextArea();//文本域
jta.setLineWrap(true);//自动换行
JScrollPane jsp = new JScrollPane(jta);//带有滚动条的面板
add(jsp);
JPanel jps = new JPanel();
jbRest = new JButton("清空");
jbRest.addActionListener(this);
jps.add(jbRest);
add(jps, BorderLayout.SOUTH);
setTitle("查询");
setSize(300, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new SearchFrame().setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
JButton jb=(JButton) e.getSource();
if(jb==jbSearch){
String name = jtf.getText();
Random r=new Random();
//模拟数据库取出来的数据,然后调用append方法,添加到文本域, 注意是append,不是setText
//数据库取出来的结果是集合, 那么也可以使用循环把字符串拼接再一起,然后一次性setText贴上去
for (int i = 0; i < 5; i++) {
jta.append("姓名:"+name+"\t班级:"+(i+1)+"\t分数"+(r.nextInt(40)+61)+"\r\n");
}
}else if(jb==jbRest){
jta.setText("");
jtf.setText("");
}
}
}