java - 设置 JTextField 自动更改

标签 java swing set jtextfield

有一个问题,我有“yC”,当用户按 alt + C 时它会一直改变

问题是如何让 JTextField 在每次 yC 值改变时改变里面的值。

yT=new JTextField(5);
mainframe.add(yT);
yT.setText(Integer.toString(yC));
window.getContentPane().add(mainframe);
window.pack();
window.setVisible(true);

如何更改 yC:

cor.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                PointerInfo a = MouseInfo.getPointerInfo();
                Point b = a.getLocation();
                xC = (int) b.getX();
                yC = (int) b.getY();
                textArea.replaceSelection("X-Coordinates:" + xC + "  Y-Coordinates: " + yC + "\n");
            }

        });

最佳答案

如果 yC 和 yT 在同一个类(class),那么你的工作就会变得更容易。考虑给 yC 一个 setter 方法:

public void setYC(int yC) {
   this.yC = yC;
   yT.setText(String.valueOf(yC));
}

然后从不直接设置 yC,而是总是通过它的 setter 方法。

<小时/>

编辑
您所链接的代码存在一个问题:

public class Test {

   static JTextField curTimeH, curTimeM, curTimeS, xT, yT;
   Timer timer;
   Robot robot = new Robot();
   static JFrame window;
   static JPanel mainframe;
   static JFrame frameRes;
   static JTextArea textArea;
   static int xC, yC;

上面的所有静态字段都应该是实例字段或非静态字段。如果您声明这样做是因为编译器提示“无法对非静态字段窗口进行静态引用”或类似的情况,那么我会告诉您您修复了错误的问题。关键是使关键字段(例如这些实例字段)以实例排序方式使用,而不是以静态排序方式使用。

关于java - 设置 JTextField 自动更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18242647/

相关文章:

java - 使用java代码将数据从postgresql迁移到hdfs

java - 如何在 JEditorPane 中设置 HTML 样式?

java - 确定换行时 JTextArea 行的文本偏移量

c++ - boost 哈纳 : create a map from a set and a default value

java - 哪个更快?检查一个元素是否已经在集合中,如果没有添加它或者只是添加它?

java - 在 gui 中显示文本的最简单方法?

java - BitTorrent peer_id 编码格式,无效请求

java - 将变量添加到所有日志消息中

java - 目标 JTextArea 封装在 Hashmap 样式循环中的 JScrollPane 中

python - 检查列表中的任何子字符串是否在另一个字符串列表中的最有效方法