有问题,我有“ 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在同一个班级,那么您的工作就会变得简单。考虑给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"
或类似内容,那么我将告诉您您已修复错误的内容。关键是诸如这些实例字段之类的make关键字字段,这些实例字段以实例方式而非静态方式使用。