すべてのカテゴリ » インターネット・パソコン » 技術・プログラミング

質問

終了

Javaのswingでラベルクリックによる画面遷移をしたいです、下記のコードのlabel1にクリックをしてpanel1からpanel2への画面遷移、panel2のlabel2をクリックし、panel3へ画面遷移、panel3のlabel3をクリックし、panel1へ画面遷移。
上記のようにするにはどうしたらいいですか。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Layout2 extends JFrame implements MouseListener{
JLabel label2;
JLabel label3;
CardLayout layout;
JPanel panel2;
JPanel panel3;

public static void main(String[] args) {
Layout2 frame = new Layout2("タイトル");
frame.setVisible(true);
}
Layout2(String title){
setTitle("タイトル");
setBounds(100,100,250,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

label2 =new JLabel("二枚目");
label3 =new JLabel("三枚目");


panel2 = new JPanel();
panel3 = new JPanel();
panel3.setBackground(Color.RED);


JLabel label1 = new JLabel("クリック");

label1.addMouseListener(this);
label2.addMouseListener(this);
label3.addMouseListener(this);

JPanel panel1 = new JPanel();
panel1.add(label1);
panel2.add(label2);
panel3.add(label3);

layout = new CardLayout();
panel1.setLayout(layout);

Container contentPane = getContentPane();
contentPane.setLayout(layout);
contentPane.add(panel1,"panel");
contentPane.add(panel2,"panel2");
contentPane.add(panel3,"panel3");
}


public void mouseClicked(MouseEvent e) {

layout.show(getContentPane(),"panel2");
layout.show(getContentPane(),"panel3");
}


public void mousePressed(MouseEvent e) {
// TODO 自動生成されたメソッド・スタブ

}


public void mouseReleased(MouseEvent e) {
// TODO 自動生成されたメソッド・スタブ

}


public void mouseEntered(MouseEvent e) {
// TODO 自動生成されたメソッド・スタブ

}


public void mouseExited(MouseEvent e) {
// TODO 自動生成されたメソッド・スタブ

}

}

  • 質問者:sksk
  • 質問日時:2019-08-23 14:16:23
  • 0

関連する質問・相談

Sooda!からのお知らせ

一覧を見る