让我们说
public class Dirchooser extends JFrame {
protected String dir;
...
private AbstractAction getGetDirAction() {
if (getDirAction == null) {
getDirAction = new AbstractAction("OK", null) {
public void actionPerformed(ActionEvent evt) {
dir = dirPathTextField1.getText();
setVisible(false);}};}
return getDirAction;}}
如何检测Dirchooser的可见性并使用另一个类获取字符串目录? 像
public class Run {
public static void main(String[] args) throws IOException {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
inst = new DirChooser();
inst.setLocationRelativeTo(null);
inst.setVisible(true);}});
//if inst is not visible,
//sysout string dir which in inst
}
}
答案 0 :(得分:3)
如果您想检查屏幕上是否显示DirChooser
,则可以使用可以返回inst.isShowing();
的{{1}}。
此外,要从第二个类中的第一个类读取变量,只需引用第二个类中第一个类的对象并访问变量(public或protected;在同一个包内或从超类中),如boolean
。希望能有所帮助。此致
答案 1 :(得分:1)
使用听众,让DirChooser在完成后给你回电话。这是Java的做法,请参阅“设计模式”。
答案 2 :(得分:1)
..
public class Dirchooser extends JFrame {
..
1,将其更改为..
public class DirChooser extends JPanel {
将框架更改为面板,并给出类名称正确的大小写。然后,将该面板放在模态JDialog
中。
在DirChooser
的行中向getDirPath()
添加方法,并在调用modalDialog.setVisible(true)
后将该方法调用为代码行。