質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

444閲覧

JLabelに動的にテキストを表示したいです.

OHASI

総合スコア96

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2022/07/23 15:13

質問

結論から言うと,ラベルに動的にテキストを表示できるようにしたいです.

具体的には,

  • ボタンに入る → MOUSE_ENTERED
  • ボタンから出る → MOUSE_EXITED
  • マウスを押す → MOUSE_PRESSED
  • マウスを離す → MOUSE_RELEASED
  • マウスを動かす → MOUSE_MOVED:(0 , 0)
  • ドラッグ → MOUSE_DRAGGED:(0 , 0) - (2 , 2)
  • シングルクリック → MOUSE_CLICKED
  • ダブルクリック → MOUSE_DOUBLE_CLICKED

と表示したいです.

このような動作をするメソッドは作成でき,System.out.printlnで上記のような出力をすることはできました.
つまり,System.out.printlnで出力している内容を,ラベルに表示したいということです.

しかし,この内容をラベルに出力する方法がどうしてもわかりません.

試したこと

System.out.printlnで出力する方法を変数に代入して,それを

JLabel jp3 = new JLabel(); jp3.setText(naiyou); cp.add(jp3);

的な感じで,出力しようと思ったのですが,無理でした.

あらかじめ

あらかじめ言っておくと,以下のコードは,とりあえず動作することを優先して自力で作ったため,ぐちゃぐちゃです.
すみません.

コード

java

1package kadai; 2 3import java.awt.GridLayout; 4import java.awt.event.MouseAdapter; 5import java.awt.event.MouseEvent; 6import java.awt.event.MouseMotionAdapter; 7 8import javax.swing.JButton; 9import javax.swing.JFrame; 10import javax.swing.JLabel; 11import javax.swing.JPanel; 12import javax.swing.SwingUtilities; 13 14public class Kadai6 { 15 16 private JFrame jf = null; 17 private JPanel cp = null; 18 19 public static String naiyou = null; 20 21 private JFrame getJFrame() { 22 if (jf == null) { 23 jf = new JFrame(); 24 jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 25 jf.setSize(480, 360); 26 jf.setLocationRelativeTo(null); 27 jf.setContentPane(getJContentPane()); 28 cp.setLayout(new GridLayout(2, 2)); 29 jf.setTitle("課題6"); 30 getButton(); 31 getLabel(); 32 } 33 return jf; 34 } 35 36 private JPanel getJContentPane() { 37 if (cp == null) { 38 cp = new JPanel(); 39 } 40 return cp; 41 } 42 43 void getButton() { 44 JButton jb = new JButton("ボタン"); 45 jb.addMouseListener(new MyMouseAdapterB()); 46 cp.add(jb); 47 } 48 49 void getLabel() { 50 51 JLabel jp1 = new JLabel("パネル1"); 52 JLabel jp2 = new JLabel("パネル2"); 53 54     //  ↓このラベルに表示したいです 55 JLabel jp3 = new JLabel(); 56 57 jp1.setHorizontalAlignment(SwingUtilities.CENTER); 58 jp2.setHorizontalAlignment(SwingUtilities.CENTER); 59 jp3.setHorizontalAlignment(SwingUtilities.CENTER); 60 61 jp1.addMouseListener(new MyMouseAdapterP1()); 62 jp2.addMouseMotionListener(new MyMouseAdapterP2()); 63 64 cp.add(jp1); 65 cp.add(jp2); 66 cp.add(jp3); 67 } 68 69 class MyMouseAdapterB extends MouseAdapter { 70 // マウスが入った 71 public void mouseEntered(MouseEvent e) { 72 System.out.println("MOUSE_ENTERED"); 73 } 74 // マウスが出た 75 public void mouseExited(MouseEvent e) { 76 System.out.println("MOUSE_EXITED"); 77 } 78 } 79 80 class MyMouseAdapterP1 extends MouseAdapter { 81 // マウスを押した 82 public void mousePressed(MouseEvent e) { 83 System.out.println("MOUSE_PRESSED"); 84 85 } 86 // マウスを離した 87 public void mouseReleased(MouseEvent e) { 88 System.out.println("MOUSE_RELEASED"); 89 } 90 } 91 class MyMouseAdapterP2 extends MouseMotionAdapter { 92 // マウスムーブ 93 public void mouseMoved(MouseEvent e) { 94 int x = e.getX(); 95 int y = e.getY(); 96 System.out.println("MOUSE_MOVED:(" + x + "," + y + ")"); 97 } 98 99 100 // マウスを押した 101 public boolean mousePressed(MouseEvent e) { 102 return true; 103 } 104 // マウスを離した 105 public boolean mouseReleased(MouseEvent e) { 106 return true; 107 } 108 // ドラッグ 109 public void mouseDragged(MouseEvent e) { 110 int xStart=0, yStart=0, xEnd=0, yEnd=0; 111 112 if (mousePressed(e)) { 113 xStart = e.getX(); 114 yStart = e.getY(); 115 } 116 if (mouseReleased(e)) { 117 xEnd = e.getX(); 118 yEnd = e.getY(); 119 } 120 System.out.println("MOUSE_DRAGGED:(" + xStart + "," + yStart + ")-(" + xEnd + "," + yEnd + ")"); 121 } 122 // シングルクリック 123 public void mouseClicked(MouseEvent e) { 124 if(e.getClickCount()==1){ 125 System.out.println("MOUSE_CLICKED"); 126 } 127 if(e.getClickCount()==2){ 128 System.out.println("MOUSE_DOUBLE_CLICKED"); 129 } 130 } 131 } 132 133 public static void main(String[] args) { 134 // TODO 自動生成されたメソッド・スタブ 135 SwingUtilities.invokeLater(new Runnable() { 136 public void run() { 137 Kadai6 application = new Kadai6(); 138 application.getJFrame().setVisible(true); 139 } 140 }); 141 } 142}

現在のパネルの出力結果

イメージ説明

出力結果(System.out.printlnで出力している内容)

java

1MOUSE_PRESSED 2MOUSE_RELEASED 3MOUSE_ENTERED 4MOUSE_EXITED 5MOUSE_MOVED:(231,54) 6MOUSE_MOVED:(229,54) 7MOUSE_DRAGGED:(182,94)-(182,94)

以上,よろしくお願いいたします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

OHASI

2022/07/23 16:22

これです. jimbeさんありがとうございました. 助かりました.
guest

回答1

0

自己解決

以下URLに行けばわかります.
https://teratail.com/questions/imoixz7ev6r23p

投稿2022/07/23 16:23

OHASI

総合スコア96

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問