0

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

我有一个Main.java接受用户输入的,我正在另一个文件(Design3.java)上创建一个 JFrame,但我遇到的问题是如何将值Main.javaDesign3.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;
    }

}

4

2 回答 2

1

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

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

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

第三,看Swing MVC架构。

于 2013-11-15T03:42:23.433 回答
1

简而言之,您的问题是:如何让一个类的对象更改另一个类中对象的状态。通常这意味着让一个对象更改另一个对象的字段状态。

评论:

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

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

于 2013-11-15T04:06:24.573 回答