J'écris un programme qui a un JFrame avec un JMenu dedans. Une fois que l'utilisateur clique sur un élément de menu, un JDialog est appelé pour obtenir une chaîne de l'utilisateur. Je veux utiliser cette chaîne dans mon programme principal mais je ne sais pas comment retourner cette valeur du JFrame au programme principal (j'ai réussi à retourner la valeur de JDialog au JFrame). Des idées?renvoie une valeur d'un JFrame à main()
Mon principal ::
public static void main(String[] args)
{
myFirstFrame m = new myFirstFrame();
m.setVisible(true);
String localhost = m.getLh();
System.out.println(localhost);
}
Mon JFrame ::
public class myFirstFrame extends JFrame
{
String lh;
myDialog myD;
public myFirstFrame(JFrame mf)
{
super();
setTitle("Welcome");
setSize(300, 300);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
JMenuItem playg = new JMenuItem("Play game");
simetoxi.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent ae)
{
myD = new myDialog(myFirstFrame.this);
myD.setVisible(true);
String lh = myD.getText();
System.out.println(lh + "ASasASas");
dispose();
}
});
JMenu game = new JMenu("GAME");
game.add(playg);
JMenuBar myBar = new JMenuBar();
myBar.add(game);
setJMenuBar(myBar);
}
public String getLh()
{
return lh;
}
}
Mon JDialog ::
public class myDialog extends JDialog
{
JTextField t1;
String sname;
public myDialog(JFrame fr)
{
super(fr, true);
setTitle("Connect");
setSize(200, 200);
setLayout(new FlowLayout());
JLabel l1 = new JLabel("Give the server name");
t1 = new JTextField(15);
add(l1);
add(t1);
JButton okb = new JButton("submit");
okb.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent ae)
{
sname = t1.getText();
dispose();
}
});
add(okb);
}
public String getText()
{
return sname;
}
}
g application comme spécifié ici en tant que démarrage de l'application: http://www.javamex.com/tutorials/threads/invokelater.shtml alors vous n'avez pas besoin de communiquer avec la fonction main(), tout ce qui est à partir de ce point est le JFrame et son la responsabilité des enfants. – EpicPandaForce