有问题,我有“ 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");
}
});
答案 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"
或类似的东西,那么我会告诉你,你修正了错误的东西。关键是使关键字段,例如这些实例字段在实例中使用,而不是以静态方式使用。