Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义组件_Java_Swing_Jtextfield - Fatal编程技术网

Java 自定义组件

Java 自定义组件,java,swing,jtextfield,Java,Swing,Jtextfield,我正在创建一个Swing GUI,我正在使用一系列JTextField。我希望能够向文本字段添加自定义属性。例如,这将用于在焦点丢失时完成计算 JTextField1.getCustomePram() * user input 我想要一个具有预定义值的文本字段,它用于乘以20*5英镑。因此,默认参数为20,用户将输入数量,并在失去焦点时进行计算 我正在使用Netbeans来构建GUI,我尝试过扩展JTextField,但说实话,我不知道该怎么办,有什么建议,或者如果我的做法完全错误,请告诉我。

我正在创建一个Swing GUI,我正在使用一系列
JTextField
。我希望能够向文本字段添加自定义属性。例如,这将用于在焦点丢失时完成计算

JTextField1.getCustomePram() * user input

我想要一个具有预定义值的文本字段,它用于乘以20*5英镑。因此,默认参数为20,用户将输入数量,并在失去焦点时进行计算


我正在使用Netbeans来构建GUI,我尝试过扩展
JTextField
,但说实话,我不知道该怎么办,有什么建议,或者如果我的做法完全错误,请告诉我。

正如用户1329572所说,您将希望对
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.");
    }
}

正如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.");
    }
}

我想要一个具有预定义值的文本字段,它用于乘以20*5英镑。因此,默认参数将为20,用户将输入数量,并在失去焦点时进行计算。。如果我完全错了,请让我知道

你完全错了

为此,我可能会使用一个禁用的文本字段或标签表示单价(20英镑),使用一个标签表示数量(5)。而不是在焦点丢失时进行计算,并在数量发生变化时“实时”向用户显示订购项目的新小计(和总计,如果相关)

需要看看我需要如何用Java实现想法

一个看的好地方是公园。将它们组合在一个布局中,用于复杂的组件组


我想要一个具有预定义值的文本字段,它用于乘以20*5英镑。因此,默认参数将为20,用户将输入数量,并在失去焦点时进行计算。。如果我完全错了,请让我知道

你完全错了

为此,我可能会使用一个禁用的文本字段或标签表示单价(20英镑),使用一个标签表示数量(5)。而不是在焦点丢失时进行计算,并在数量发生变化时“实时”向用户显示订购项目的新小计(和总计,如果相关)

需要看看我需要如何用Java实现想法


一个看的好地方是公园。将它们组合在一个布局中,用于复杂的组件组。

取决于属性类型和添加任何属性的原因。我想要一个具有预定义值的文本字段,它用于乘以20*5英镑。因此,默认参数为20,用户将输入数量,并在失去焦点时进行计算。WChargin回答了焦点问题,现在只需要对自定义参数提供一些帮助。然后,不取决于属性类型和添加任何属性的原因。我想要一个具有预定义值的文本字段,它用于乘以20*5英镑。因此,默认参数为20,用户将输入数量,并在失去焦点时进行计算。WChargin回答了焦点问题,只是现在需要一些自定义参数的帮助。然后不好,谢谢用户1329572和WChargin的帮助。这个自定义参数,我可以通过netbeans中的属性菜单设置它吗,因为如果我查看生成的代码,似乎没有任何方法可以设置该值?无论您想在哪里设置该值,请键入代码
setCustomParam(value)
,其中value是要设置的值。好的,感谢用户1329572和WChargin的帮助。那个自定义参数,我可以通过netbeans中的属性菜单设置它吗,因为如果我查看生成的代码,似乎没有任何方法可以设置该值?无论您想在哪里设置该值,请键入代码
setCustomParam(value)
,其中value是您想要设置的值。我可以给出+1以上的值。与其帮助自己在很多麻烦中扩展JTextField并用它做一些奇怪的事情,不如提供一个有体面UI的体面解决方案。我喜欢。好的,谢谢你的帮助。我将重新思考如何做这件事,我是Java新手,有PHP背景。需要看看我需要如何在Java中实现想法。另请参阅第3条编辑链接。很高兴我能向您介绍一种更好的方法,您的用户将感谢您。:)这比+1还多。与其帮助自己在很多麻烦中扩展JTextField并用它做一些奇怪的事情,不如提供一个有体面UI的体面解决方案。我喜欢。好的,谢谢你的帮助。我将重新思考如何做这件事,我是Java新手,有PHP背景。需要看看我需要如何在Java中实现想法。另请参阅第3条编辑链接。很高兴我能向您介绍一种更好的方法,您的用户将感谢您。:)