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");
}
@Override
public void mouseClicked(MouseEvent e) {
layout.show(getContentPane(),"panel2");
layout.show(getContentPane(),"panel3");
}
@Override
public void mousePressed(MouseEvent e) {
// TODO 自動生成されたメソッド・スタブ
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO 自動生成されたメソッド・スタブ
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO 自動生成されたメソッド・スタブ
}
@Override
public void mouseExited(MouseEvent e) {
// TODO 自動生成されたメソッド・スタブ
}
}
No.1ベストアンサー
- 回答日時:
順番にカードを切り替える操作を利用しましょう
https://docs.oracle.com/javase/jp/10/docs/api/ja …
もっと複雑な切り替えが必要ならば、
現在表示しているカード名の状態を独自に管理して、次に切り替えるカード名を計算するメソッドを用意してから、
カードを切り替える操作をしましょう
https://docs.oracle.com/javase/jp/10/docs/api/ja …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- VPN 何これ 1 2022/04/19 01:32
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- その他(プログラミング・Web制作) seleniumbasic chrome操作について 1 2023/03/29 15:40
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- Java java final 1 2022/06/10 22:49
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6.0でのTextboxの高さ変更
-
JPanelの切り替えと再描画
-
javaで文字数制限するには?
-
次のように書いたのですが、ウ...
-
エラーで式の開始が不正ですと...
-
java junit list同士の比較方法
-
Java-Swing TextAreaにスクロー...
-
JDialogを閉じた時の処理
-
キャレットの幅を設定したい。
-
c言語のプログラミングで1から1...
-
JButton-背景の透明化
-
KeyListenerの使い方について
-
Buttonを押すと画像が表示され...
-
コンパイルエラー <identifier...
-
JSPやサーブレットでSystem.out...
-
System.err. printlnとSystem.o...
-
C言語のポインターに関する警告
-
変数を動的に利用するには?
-
1~100までの数字を表示し、か...
-
flush()とclose()について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
java junit list同士の比較方法
-
javaで文字数制限するには?
-
JTableの列ヘッダ
-
TextAreaでの文字の色
-
最後の行に移動するには?
-
【Swing】JPanel クラス外から...
-
4択クイズでのランダム出題の...
-
コンパイルエラー <identifier...
-
JPanelの重ね方/OverlayLayout他
-
JPanelの切り替えと再描画
-
エラーで式の開始が不正ですと...
-
JTable の 列幅を個別に設定す...
-
VB6.0でのTextboxの高さ変更
-
連番をオブジェクト名の最後に...
-
ボタンクリック後パネルを再描...
-
JavaでのSwingを使った簡易電卓...
-
ArrayListの使い方について(初...
-
Buttonを押すと画像が表示され...
-
あるコンボボックスを選択する...
-
KeyListenerの使い方について
おすすめ情報