有一个问题,我有“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/