我正在构建一个我打算在很多应用程序中重用的软件包。 这个软件包包含一个"串口管理器":无论我构建什么应用程序,我总是需要设置通信端口和相关参数。
有一种方法可以在包中包含所有需要代码的JFrame(或整个表单?),因此每当应用程序需要设置端口时,它会调用包中的方法,并且模态形式会出现吗?
......我希望一直清楚......
答案 0 :(得分:1)
这更适合模态组件,例如JDialog
或JOptionPane
。从我怀疑你的意思来说,两者都会“阻止”。
有关详细信息,请参阅How to Use Modality in Dialogs。
答案 1 :(得分:1)
GUI示例:
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
),其中包含'subpackage'dialog
。
Port
类将位于主程序包serialport
答案 2 :(得分: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
}