0

我正在构建一个我计划在很多应用程序中重复使用的包。这个包包含一个“串行端口管理器”:无论我要构建什么应用程序,我总是需要设置通信端口和相关参数。

有一种方法可以在包中拥有一个 JFrame(或整个表单?),以及所有需要的代码,所以每当应用程序需要设置一个端口时,它会调用包中的一个方法,并且会出现一个模态表单?

……我希望清楚……

4

3 回答 3

1

这将更适合模态组件,例如 aJDialog或 a JOptionPane。在我怀疑你的意思的意义上,两者都会“阻止”。

有关更多详细信息,请参阅如何在对话框中使用模态。

于 2013-02-11T10:03:09.637 回答
1

图形用户界面示例:

public class PortConfiguration extends JDialog() {
    private int baudrate;
    private String moreStuff;

    //show window, events and more
    public PortConfiguration() {
        super(null,true);
        this.setVisible( false );
        //GUI creation...
    }

    //get configuration:
    public int getBaudrate() {}
    public String getStuff() {}
}

端口实现:

public class Port {
    public Port( int baudrate, String stuff ) {
        //create, open port...
    }
}

然后您可以在需要时使用它们:

PortConfiguration portGUI = new PortConfiguration();
portGUI.setVisible( true );
Port p = new Port( portGUI.getBaudrate(), portGUI.getStuff() );

关于包:您可以为 GUI 类创建一个serialport包含“子包”的主包 ( ) 。dialog该类Port将在主包内serialport

于 2013-02-11T10:06:42.773 回答
0

当然:

public class SerialPortManagerFrame extends JFrame
{
    private final JTextField baudRateTextField;
    // More controls here

    public SerialPortManagerFrame (int baudRate /* Other parameters here */)
    {
        super ("Serial Port Manager");

        baudRateTextField.setText (String.valueOf (baudRate));
        // Initialize other fields here

        getContentPane.setLayout (new BorderLayout ());
        getContentPane.add (baudRateTextField, BorderLayout.NORTH);
        // Other GUI initialization here including
    }

    public int getBaudRate ()
    {
        return Integer.parseInt (baudRateTextField.getText ());
    }

    // Other methods here
}
于 2013-02-11T09:58:36.207 回答