我有一个JButton,它在单击时会显示随机文本,但是我的问题是,如果单击两次它会再次显示随机文本,但是当我希望精确显示时会显示在第一个文本的旁边同一地方,而不是第一个地方(希望我说的很清楚哈哈)
我已经尝试过搜索问题,并在reddit和stackoverflow上进行搜索,但是找不到我想要的内容
按钮的代码:
butt = new JButton("Generate");
butt.setFont(new Font("Tahoma", Font.BOLD, 12));
butt.setBackground(Color.WHITE);
butt.addActionListener(new ActionListener() {
public void actionPerformed (ActionEvent e) {
RandomString yep = new RandomString();
String c = yep.nextString();
text = new JTextArea(" "+c,0,0);
text.setLineWrap(true);
text.setBounds(10,10,100,60);
text.setFont(new Font("Courier", Font.BOLD, 14));
text.setEditable(false);
p3.add(text,BorderLayout.CENTER);
f.remove(p4);
f.add(p3,BorderLayout.CENTER);
}
});
如果完美,它将在第一次单击中显示该文本,然后在第二次单击中将再次显示该文本,但这一次恰好是第一个文本在哪里,就像它在擦除并再次显示一样
我真的希望这是可以理解的!感谢您提供的任何帮助,例如对该程序的最终修改:)
答案 0 :(得分:0)
您每次执行操作时都在创建JTextArea
!将JTextArea
移出actionPerformed
并设置文本。
JTextArea text = new JTextArea();
JButton button = new JButton("Generate");
....
button.addActionListener(new ActionListener() {
....
String c = yep.nextString();
text.setText(c);
....
}