设置JTextField自动更改

时间:2013-08-14 21:30:14

标签: 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");
            }

        });

1 个答案:

答案 0 :(得分:2)

如果yC和yT在同一个班级,那么你的工作就会变得更容易。考虑给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;

上面的所有静态字段都应该是实例字段或非静态字段。如果你说你这样做是因为编译器抱怨"Cannot make a static reference to the non-static field window"或类似的东西,那么我会告诉你,你修正了错误的东西。关键是使关键字段,例如这些实例字段在实例中使用,而不是以静态方式使用。