如果单击两次,如何使JButton生成的文本重新出现在同一位置?

时间:2019-05-23 12:00:43

标签: java jbutton actionlistener

我有一个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);
            }
        });

如果完美,它将在第一次单击中显示该文本,然后在第二次单击中将再次显示该文本,但这一次恰好是第一个文本在哪里,就像它在擦除并再次显示一样

我真的希望这是可以理解的!感谢您提供的任何帮助,例如对该程序的最终修改:)

1 个答案:

答案 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);
    ....
}