我正在构建一个我计划在很多应用程序中重复使用的包。这个包包含一个“串行端口管理器”:无论我要构建什么应用程序,我总是需要设置通信端口和相关参数。
有一种方法可以在包中拥有一个 JFrame(或整个表单?),以及所有需要的代码,所以每当应用程序需要设置一个端口时,它会调用包中的一个方法,并且会出现一个模态表单?
……我希望清楚……
这将更适合模态组件,例如 aJDialog
或 a JOptionPane
。在我怀疑你的意思的意义上,两者都会“阻止”。
有关更多详细信息,请参阅如何在对话框中使用模态。
图形用户界面示例:
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
当然:
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
}