Вам нужно будет создать экземпляр 2-го класса, который имеет 2-й кадр (будет показан) ... и затем, если вы вызовите setVisible (true) .., тогда он должен показать ... что вы делаете ... могли бы вы предоставить свойобработчик событий кнопки ..
, и это не очень хорошая практика
, поэтому лично я бы порекомендовал вам переключиться на лучшие альтернативы, такие как JTABBEDPANES или CARDLAYOUT
и примите во внимание комментарии .. хорошие комментарии, ребята :) .. особенно с использованием JDialog для этого контекста:)
хорошо, если вам все еще нужна помощь в вашем контексте: пример:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class JFrame1 extends JFrame
{
public JFrame1()
{
setLayout(new FlowLayout());
JButton b=new JButton("Click");
add(b);
b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
JFrame jf = new JFrame2();
jf.setVisible(true);
jf.setSize(200, 200);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
);
}
public static void main(String args[])
{
JFrame jf = new JFrame1();
jf.setVisible(true);
jf.setSize(200, 200);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
и второй класс:
import javax.swing.*;
import java.awt.*;
class JFrame2 extends JFrame
{
public JFrame2()
{
setLayout(new FlowLayout());
add(new JLabel("2nd Frame"));
}
}
Но опять-таки я бы по-прежнему рекомендовал переключиться на другие методы, как я упоминал ранее: tabbedpanes, cardlayout и т. Д. Надеюсь, я помог:)