webForumDet fria alternativet

Låsa fönstret man kommer ifrån

Java

4 svar · 258 visningar · startad av Nickemannen

Medlem sedan aug. 20003 575 inlägg
Frågan#1

Jag har ett program där jag har ett fönster... I det fönstret så öppnar jag ett nytt fönster... jag vill låsa det fönstret jag öppnade det ifrån tills det öppnade fönstret stängs.

Medlem sedan aug. 20021 752 inlägg
#2

Såhär kan man göra,

public class DlgLogin extends JDialog implements ActionListener
{
	public DlgLogin(JFrame parent)
	{
		super(parent,"JRC - Login",true);
		setSize(290,210);

		Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
		setLocation(screenSize.width/2-145,screenSize.height/4);

		addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				((DlgLogin)e.getSource()).hide(); 
			}
		});
	}

	public Connection showDialog()
	{
		show();
		return(conn);
	}

	public void actionPerformed(ActionEvent arg)
	{
		if(arg.getSource()==btnCancel)
		{
			conn=null;
			this.hide();
		}
	}
}

//Klassen som visar DlgLogin
public class FrmClient extends JFrame implements ActionListener
{
	private DlgLogin dlgLogin=new DlgLogin(this);

	public void actionPerformed(ActionEvent arg)
	{
		if(arg.getSource() instanceof JMenuItem)
		{
			String label=((JMenuItem)arg.getSource()).getLabel();
			if((label.equals("Connect..."))&&(!cmc.isConnected()))
			{
				Connection conn=dlgLogin.showDialog();
			}
		}
	}
}

När this.hide() anroppas så avslutas funktionen showDialog och den retunerar det som den ska retunera.

/Viktor

Medlem sedan sep. 2001961 inlägg
#3

Det gömmer ju fönstret... eller hur?

Vad jag tror du är ute efter är "modal"

I JDialog skapar man den med new JDialog("Bluttanbla", true);

I JFrame har jag för mig att man kan använda sig av accessibleContext på något sätt.

/Lime

Medlem sedan aug. 20021 752 inlägg
#4

Min kod fungerar som ett modal fönster. Hide används bara föra att man inte ska behöva bygga upp det på nytt varje gång som man ska visa det :)

/Viktor

Medlem sedan sep. 2001961 inlägg
#5

Jo, jag konstaterade det också, men varför bygga något som redan finns i JFC?

/Lime

262 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)