我正在创建一个Swing GUI,我使用了一系列的JTextField。我希望能够向文本字段添加自定义属性。例如,当焦点丢失时,这将用于完成计算。
JTextField1.getCustomePram() * user input我想要一个文本字段,它将有一个预定义的值,它是用于乘以of 20 * 5。因此,默认参数将是20,用户将把数量放入,并在失去焦点时进行计算。
我正在使用Netbeans构建图形用户界面,我已经尝试扩展JTextField,但老实说,我不确定该做什么,任何建议或如果我做得完全错误,请让我知道。
发布于 2012-05-02 04:49:33
我想要一个文本字段,它将有一个预定义的值,它用于乘以of 20 * 5。因此,默认参数将是20,用户将输入数量,并在失去焦点时进行计算。。。如果我做的完全错了,请让我知道。
你这样做是完全错误的。
为此,我可以使用禁用的文本域或标签表示单价(£20),使用JSpinner表示数量(5)。而不是计算焦点丢失,add a change listener和显示用户新的小计(如果相关)的订购项目的新小计(如果相关)在‘实时’-当数量发生变化。
需要看看我需要如何在Java语言中实现想法。
一个很好的地方是Visual Guide to Swing Components。将它们组合在一个布局中,以形成复杂的组件组。
发布于 2012-05-02 04:14:24
正如user1329572所说,您需要对JTextField进行子类化(或扩展)。您可以执行以下操作:
public class MyTextField extends javax.swing.JTextField {
private String /* or whatever type */ myCustomParam;
public String getCustomParam() {
return myCustomParam;
}
public void setCustomParam(String param) {
myCustomParam = param;
}
}在需要使用JTextField的任何地方,您也可以使用MyTextField。所有其他功能仍然有效。
关于焦点:要检测焦点,请使用FocusAdapter
MyTextField mtf = new MyTextField();
mtf.addFocusListener(new java.awt.event.FocusAdapter() {
@Override
public void focusLost(java.awt.event.FocusEvent e) {
System.out.println("I lost focus.");
}
}https://stackoverflow.com/questions/10403640
复制相似问题