JButton을 눌러 JPanels를 변경하고 싶습니다. 글쎄, 한 번만 할 수 있지만 문제는 이전 JPanel로 돌아가고 싶을 때입니다. 여기 내 코드입니다 : 내가 버튼 "retroceder"를 눌러 원하는JButton을 누른 후 JPanel을 변경하십시오.
public class MindCreations {
public static void main(String[] args){
Adj0 object1= new Adj0();
object1.setSize(500, 600);
object1.setVisible(true);
object1.setLocation(700,300);
} }
public class Adj0 extends JFrame{
public Adj0(){
super("MindCreations");
this.setLayout(null);
adj0panel object9=new adj0panel();
add(object9.adj0panel());
Isa object10=new Isa();
add(object10.Isa());
} }
public class adj0panel {
private JButton quarto;
private FlowLayout layout;
public JPanel adj0panel(){
final JPanel panel=new JPanel();
JLabel jl=new JLabel();
panel.setLayout(layout);
quarto= new JButton("Tabela ISA");
quarto.setBounds(50,490,400,20);
jl.setIcon(new ImageIcon("2.png"));
jl.setBounds(40, 50, 413, 300);
panel.add(jl);
panel.add(quarto);
quarto.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
Isa object3=new Isa();
panel.setVisible(false);
}
});
return panel;
}
}
public class Isa {
public JPanel Isa(){
final JPanel panel1=new JPanel();
panel1.setLayout(layout);
panel1.setBounds(0, 0, 500, 600);
panel1.setBackground(Color.WHITE);
panel1.setVisible(true);
JButton retroceder=new JButton("Retroceder");
retroceder.setBounds(300, 460, 90, 20);
retroceder.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
adj0panel object4=new adj0panel();
panel1.setVisible(false);
}}
);
panel1.add(retroceder);
return panel1;
}}
, 그리고 난 adj0panel 클래스 인 JPanel에 가고 싶다. 긴 질문에 미안해, 나는 이것에 초보자이다. 다른 방법으로 JPanels를 변경하는 경우 알려주십시오. 감사합니다.
흠, 내 프로그램에서 "frame.getContentPane()"을 추가 할 수있는 곳은 JButton "retroceder"의 actionlistener에 추가해야하며, 그렇다면 어떻게 작성해야합니까? – user2627865
프레임을 param으로 사용하는 로더 메서드를 작성하고 다른 메서드는 프레임의 패널을 가져 와서 스택 개체에서 패널을로드합니다. 이 물건이 기본 메소드 나 PanelLoader 팩토리 스타일 클래스에있을 수 있다고 가정합니다. –