繁体   English   中英

如何创建用户定义的JLabel,JTextField?

[英]How do I create user-defined JLabel,JTextField?

根据标题,如何创建由用户确定的JLabel和JTextfield的动态大小?

我有一个Main.java接受用户输入,我在另一个文件( Design3.java )上创建一个JFrame,但我遇到的问题是如何将值从Main.java传递给Design3.java

这是我的Design3.java文件的代码。 基本上我被困了,因为我从Main.java传递的值为Design3方法的变量范围。 如何使其全局化,因为我需要全局创建JLabel

int numberOfSellers;

Label[] l = new Label[numberOfSellers];

public class Design3 {

    int numberOfSellers;

    Design3 nOS = new Design3();

    public Design3( int number_of_sellers )
    {
        nOS.setNumberOfSellers(number_of_sellers);

        JFrame newWindow = new JFrame("Test");

        newWindow.setVisible(true);
        newWindow.setSize(500,500);
        newWindow.setLayout(null);
    }

    public void setNumberOfSellers(int num)
    {
        this.numberOfSellers = num;
    }

}

根据标题,如何创建由用户确定的JLabel和JTextfield的动态大小?

你想做什么 ? 您可以考虑创建一个扩展JLabel的自定义类和另一个扩展JTextField自定义类。

其次,为什么Design3有一个Design3实例? 我在这里感觉到很多不好的设计。

第三,研究Swing MVC架构。

简而言之,您的问题是:如何让一个类的对象更改另一个类中对象的状态。 通常转换为让一个对象改变另一个对象的字段的状态。

评论:

  • 没有一个适合所有人的答案,因为这是一个非常广泛和过于普遍的问题。 这就是为什么我们要求澄清您的问题,因为您的问题越具体,通常答案就越明确。
  • 更改对象字段状态的一般方法,包括通过构造函数参数。 所以你可以给你的GUI一个int字段说numberOfFoo ,然后给它一个构造函数参数来匹配,然后当一个类创建另一个的实例时,它可以将正确的数字传递给第一个类的构造函数。
  • 或者你可以使用setFoo(int foo)类的setter方法,其中一个类可以将数字传递给另一个类。

如果您有更具体的问题,那么您必须进一步描述它。 例如,如果您希望一个对象监视另一个对象的字段并响应更改,那么根据我的注释,您将需要使用某种类型的观察者设计模式机制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM