Kapilkp Ответов: 2

откройте новый jframe одним нажатием кнопки


Я использую eclipse и создаю Swing-приложение, которое имеет два jframe, один-Login, а второй-welcome. я хочу открыть welcome jframe, нажав кнопку submit в login jframe. обе формы JFrame находятся в одной и той же упаковке

2 Ответов

Рейтинг:
0

Filipe Marques

Привет Капилкп,

Тогда же я сделал нечто подобное.

В форму входа вы должны установить операцию закрытия а:

f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);


И когда вы нажмете на кнопку, вы избавитесь от этого кадра:

dispose();



и создайте новый экземпляр вашего класса, который будет хранить второй JFrame

dispose();
JSecondFrame secondFrame = new JSecondFrame();


Я надеюсь, что это поможет вам

С уважением,
Филипе Маркеш

--ОБНОВЛЕНИЕ--
// MyLogin.java
import javax.swing.*;
import java.awt.event.*;
public class MyLogin {
	private JFrame f = new JFrame("Login");
	private JButton bok = new JButton("OK");
	
	public MyLogin() {
	
		f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
		f.getContentPane().add(bok);
		
		bok.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent ae) {
				f.dispose();
				new SecondFrame();
			}
		});
		f.setSize(100,100);
		f.setVisible(true);
	}
	
	public static void main(String[] args) {
		new MyLogin();
	}
}

// SecondFrame.java
import javax.swing.*;
public class SecondFrame {
	private JFrame f = new JFrame("Second");
	
	public SecondFrame() {
	
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setSize(300,300);
		f.setVisible(true);
	}
}


JFrame входа в систему-это всего лишь кнопка, и когда вы нажимаете на нее, окно входа удаляется и появляется второе окно.


Kapilkp

привет Филипе Маркес, спасибо за помощь, но будет более полезно, если вы скажете мне, где я должен написать этот код в разделе ActionPerformed() или где-то еще

Filipe Marques

Kapilkp, я обновляю свой ответ образцом кода. Он ничего не делает, он только показывает тебе. (:

Kapilkp

Филипе, я использую eclipse, вот почему я спрашиваю, потому что в блокноте он работает, но в eclipse он не работает

Filipe Marques

Я никогда не использовал eclipse. Я использую Netbeans или иногда использую notepad++ с командной строкой. Но это не имеет значения. У вас должно быть что-то похожее с моим кодом выше. Единственное отличие, которое я вижу, заключается в том, как eclipse создает кнопку, но в конце концов результат тот же. С наилучшими пожеланиями: Филипе

Рейтинг:
0

Member 13392940

//Первый JFrame

импорт пакета javax.качели.*;
импорт Java.авт.событие.*;

public class Pro реализует ActionListener
{
JFrame f1=новый JFrame ("вход в систему");
Надписи Л1,Л2;
Ли Т1,Т2;
Jbutton С В1;

Про()
{
l1=new JLabel ("имя пользователя");
l2=новый JLabel ("пароль");
t1=новое JTextField(20);
t2=новое JTextField(20);
b1=новая кнопка JButton ("OK");

f1. setSize(400,400);
f1. setVisible (true);
f1. setLayout(null);

Ф1.setDefaultCloseOperation(форму.HIDE_ON_CLOSE);
Ф1.добавить(Л1);
Ф1.добавить(Т1);
Ф1.добавить(Л2);
Ф1.добавить(Т2);
f1. getContentPane (). add (b1);

Л1.setBounds(0,30,100,30);
Т1.setBounds(110,30,100,30);
Л2.setBounds(0,70,100,30);
Т2.setBounds(110,70,100,30);
В1.setBounds(0,120,100,30);

b1. addActionListener (это);
}

общественного недействительными событий actionperformed(типа actionevent е)
{
Ф1.распоряжаться();
Project1 p2=новый проект 1();
}

public static void main(String ag[])
{
Pro p1=новый Pro();
}
}

//Вторую Форму
импорт пакета javax.качели.*;

проект публичного класса 1
{
Форму Ф1=новое JFrame("вход В1");

Проект1()
{
Ф1.setDefaultCloseOperation(форму.EXIT_ON_CLOSE);
f1. setVisible (true);
f1. setSize(400,400);
}
}