我正在创建一个Swing GUI,我正在使用一系列JTextField
。我希望能够在文本字段中添加自定义属性。例如,当焦点丢失时,这将用于完成计算。
JTextField1.getCustomePram() * user input
我想要一个具有预定义值的文本字段,它用于乘以20 * 5.因此默认参数将为20,用户将输入数量,并且在失去焦点时计算将完成。
我正在使用Netbeans来构建GUI,我尝试扩展JTextField
但是说实话我不知道该怎么做,任何建议或者如果我这样做完全错了请告诉我。
答案 0 :(得分:4)
正如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.");
}
}
答案 1 :(得分:4)
我想要一个具有预定义值的文本字段,它用于乘以20 * 5.因此默认参数将为20,用户将输入数量,并且在失去焦点时计算将完成。 ..如果我这样做完全错了,请告诉我。
你这样做完全错了。
为此,我可以使用禁用的文本字段或标签作为单价(20英镑),使用JSpinner
作为数量(5)。而不是对焦点丢失进行计算,add a change listener并在“实时”中向用户显示订购商品的新小计(以及相关的总计) - 当数量发生变化时。
需要了解我需要如何在Java中实现创意。
值得注意的地方是Visual Guide to Swing Components。将它们组合在一个复杂的组件组的布局中。