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

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

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

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

解決済

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

OHASI
OHASI

総合スコア70

Java

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

1回答

0リアクション

0クリップ

168閲覧

投稿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

package kadai; import java.awt.GridLayout; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingUtilities; public class Kadai6 { private JFrame jf = null; private JPanel cp = null; public static String naiyou = null; private JFrame getJFrame() { if (jf == null) { jf = new JFrame(); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setSize(480, 360); jf.setLocationRelativeTo(null); jf.setContentPane(getJContentPane()); cp.setLayout(new GridLayout(2, 2)); jf.setTitle("課題6"); getButton(); getLabel(); } return jf; } private JPanel getJContentPane() { if (cp == null) { cp = new JPanel(); } return cp; } void getButton() { JButton jb = new JButton("ボタン"); jb.addMouseListener(new MyMouseAdapterB()); cp.add(jb); } void getLabel() { JLabel jp1 = new JLabel("パネル1"); JLabel jp2 = new JLabel("パネル2");      //  ↓このラベルに表示したいです JLabel jp3 = new JLabel(); jp1.setHorizontalAlignment(SwingUtilities.CENTER); jp2.setHorizontalAlignment(SwingUtilities.CENTER); jp3.setHorizontalAlignment(SwingUtilities.CENTER); jp1.addMouseListener(new MyMouseAdapterP1()); jp2.addMouseMotionListener(new MyMouseAdapterP2()); cp.add(jp1); cp.add(jp2); cp.add(jp3); } class MyMouseAdapterB extends MouseAdapter { // マウスが入った public void mouseEntered(MouseEvent e) { System.out.println("MOUSE_ENTERED"); } // マウスが出た public void mouseExited(MouseEvent e) { System.out.println("MOUSE_EXITED"); } } class MyMouseAdapterP1 extends MouseAdapter { // マウスを押した public void mousePressed(MouseEvent e) { System.out.println("MOUSE_PRESSED"); } // マウスを離した public void mouseReleased(MouseEvent e) { System.out.println("MOUSE_RELEASED"); } } class MyMouseAdapterP2 extends MouseMotionAdapter { // マウスムーブ public void mouseMoved(MouseEvent e) { int x = e.getX(); int y = e.getY(); System.out.println("MOUSE_MOVED:(" + x + "," + y + ")"); } // マウスを押した public boolean mousePressed(MouseEvent e) { return true; } // マウスを離した public boolean mouseReleased(MouseEvent e) { return true; } // ドラッグ public void mouseDragged(MouseEvent e) { int xStart=0, yStart=0, xEnd=0, yEnd=0; if (mousePressed(e)) { xStart = e.getX(); yStart = e.getY(); } if (mouseReleased(e)) { xEnd = e.getX(); yEnd = e.getY(); } System.out.println("MOUSE_DRAGGED:(" + xStart + "," + yStart + ")-(" + xEnd + "," + yEnd + ")"); } // シングルクリック public void mouseClicked(MouseEvent e) { if(e.getClickCount()==1){ System.out.println("MOUSE_CLICKED"); } if(e.getClickCount()==2){ System.out.println("MOUSE_DOUBLE_CLICKED"); } } } public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ SwingUtilities.invokeLater(new Runnable() { public void run() { Kadai6 application = new Kadai6(); application.getJFrame().setVisible(true); } }); } }

現在のパネルの出力結果

イメージ説明

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

java

MOUSE_PRESSED MOUSE_RELEASED MOUSE_ENTERED MOUSE_EXITED MOUSE_MOVED:(231,54) MOUSE_MOVED:(229,54) MOUSE_DRAGGED:(182,94)-(182,94)

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

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

OHASI

2022/07/23 16:22

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

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Java

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