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

标签 java swing 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);
            }
        });

如果这是完美的,它将在第一次单击时显示文本,在第二次单击时它将再次显示文本,但这一次正是第一个文本所在的位置,就好像它正在删除它并再次显示它

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

最佳答案

每次执行操作时,您都会创建一个 JTextArea!将 JTextArea 移出 actionPerformed 并设置文本。

JTextArea text = new JTextArea();
JButton button = new JButton("Generate");
....
button.addActionListener(new ActionListener() {
    ....
    String c = yep.nextString();
    text.setText(c);
    ....
}

关于java - 如果单击两次,如何使 JButton 生成的文本重新出现在同一位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56274769/

相关文章:

java - 用新的 JButton 替换旧的 JButton

java - 从类获取 boolean 值到主方法。 java

java - 如何使用 CodeModel 的 JExpr.plus 方法删除不必要的括号?

java - 带有 JCombobox 编辑器的 JTable : handle mouse clicks

java - 修复 GUI 输出,将 2 个 JPanel 添加到单个 JFrame

java - JTable 输入关键操作

java - JButton 不发送操作命令

java - 我可以制作一个采用实例并将 map 对象返回为静态的方法吗?

java - RxJava插入并返回Id方法(房间)调试

java - 单独的 web.xml 用于开发和生产