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

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

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

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

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

Q&A

解決済

1回答

200閲覧

JPanelの結果を、他のJPanelに反映させたい。

akirasada1972

総合スコア41

Java

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

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

0グッド

0クリップ

投稿2018/06/18 19:53

JPanel j2の、Count(i)の結果を、j1のLabelに反映させたい。

java

1import javax.swing.*; 2import java.awt.*; 3import java.awt.event.*; 4 5public class ScreenToucher extends JFrame { 6 7 int i=0; 8 static int width=500; 9 static int height=500; 10 11 public static void main(String args[]) { 12 ScreenToucher frame = new ScreenToucher("タイトル"); 13 frame.setVisible(true); 14 } 15 16 ScreenToucher(String title){ 17 setTitle(title); 18 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 19 setBounds(100, 100, width, height); 20 21 MyPanel1 p1 = new MyPanel1(); 22 MyPanel2 p2 = new MyPanel2(); 23 24 Container contentPane = getContentPane(); 25 contentPane.add(p1, BorderLayout.NORTH); 26 contentPane.add(p2, BorderLayout.CENTER); 27 } 28 29 } 30 31class MyPanel1 extends JPanel{ 32 33 int i; 34 35 MyPanel1(){ 36 JPanel jp1 = new JPanel(); 37 JLabel jl1 = new JLabel(); 38 jp1.setBackground(Color.green); 39 Integer j = new Integer(i); 40 String text = j.toString(); 41 jl1.setText(text); 42 jp1.add(jl1); 43 add(jp1); 44 45 }; 46 47 } 48 49class MyPanel2 extends JPanel { 50 51 static int width=500; 52 static int height=500; 53 static int i=0; 54 static int r = 60; 55 static int x; 56 static int y; 57 58 final static Color bc = Color.black; 59 final static Color dc = Color.green; 60 61 MyPanel2(){ 62 repaint(); 63 MouseListener(); 64 } 65 66 void MouseListener () { 67 addMouseListener(new MouseAdapter() { 68 public void mousePressed(MouseEvent e) { 69 double mouseX=e.getX(); 70 double mouseY=e.getY(); 71 if(mouseX>x&&mouseX<x+2*r) { 72 if(mouseY>y&&mouseY<y+2*r) { 73 74 repaint(); 75 Count(i); 76 } 77 } 78 } 79 }); 80 } 81 82 protected void paintComponent(Graphics g) { 83// super.paintComponent(g); 84 x = (int) (Math.random()*width); 85 y = (int) (Math.random()*height)+30; 86 if((x<width-2*r)&&(y<height-2*r)) { 87 g.setColor(bc); 88 g.fillRect(0, 0, width, height); 89 g.setColor(dc); 90 g.fillOval(x, y, r, r); 91 }else { 92 repaint(); 93 } 94 } 95 96 int Count(int i){ 97 i=i*100; 98 return i; 99 } 100 }

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

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

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

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

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

guest

回答1

0

ベストアンサー

Java

1import javax.swing.*; 2import java.awt.*; 3import java.awt.event.*; 4 5public class ScreenToucher extends JFrame { 6 7 int i = 0; 8 static int width = 500; 9 static int height = 500; 10 11 private MyPanel1 p1; 12 13 public static void main(String args[]) { 14 ScreenToucher frame = new ScreenToucher("タイトル"); 15 frame.setVisible(true); 16 } 17 18 ScreenToucher(String title) { 19 setTitle(title); 20 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 21 setBounds(100, 100, width, height); 22 23 p1 = new MyPanel1(); 24 MyPanel2 p2 = new MyPanel2(this); 25 26 Container contentPane = getContentPane(); 27 contentPane.add(p1, BorderLayout.NORTH); 28 contentPane.add(p2, BorderLayout.CENTER); 29 } 30 31 public void setCount(int count) { 32 p1.setCount(count); 33 } 34 35} 36 37class MyPanel1 extends JPanel { 38 39 int i; 40 41 private JLabel jl1; 42 43 MyPanel1() { 44 JPanel jp1 = new JPanel(); 45 jl1 = new JLabel(); 46 jp1.setBackground(Color.green); 47 Integer j = new Integer(i); 48 String text = j.toString(); 49 jl1.setText(text); 50 jp1.add(jl1); 51 add(jp1); 52 } 53 54 public void setCount(int count) { 55 jl1.setText(Integer.toString(count)); 56 } 57 58} 59 60class MyPanel2 extends JPanel { 61 62 static int width = 500; 63 static int height = 500; 64 static int i = 0; 65 static int r = 60; 66 static int x; 67 static int y; 68 69 final static Color bc = Color.black; 70 final static Color dc = Color.green; 71 72 private ScreenToucher owner; 73 74 MyPanel2(ScreenToucher owner) { 75 this.owner = owner; 76 repaint(); 77 MouseListener(); 78 } 79 80 void MouseListener() { 81 addMouseListener(new MouseAdapter() { 82 public void mousePressed(MouseEvent e) { 83 double mouseX = e.getX(); 84 double mouseY = e.getY(); 85 if (mouseX > x && mouseX < x + 2 * r) { 86 if (mouseY > y && mouseY < y + 2 * r) { 87 repaint(); 88 owner.setCount(Count()); 89 } 90 } 91 } 92 }); 93 } 94 95 protected void paintComponent(Graphics g) { 96// super.paintComponent(g); 97 x = (int) (Math.random() * width); 98 y = (int) (Math.random() * height) + 30; 99 if ((x < width - 2 * r) && (y < height - 2 * r)) { 100 g.setColor(bc); 101 g.fillRect(0, 0, width, height); 102 g.setColor(dc); 103 g.fillOval(x, y, r, r); 104 } else { 105 repaint(); 106 } 107 } 108 109 int Count() { 110 i += 100; 111 return i; 112 } 113}

投稿2018/06/19 04:51

root_jp

総合スコア4666

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

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

akirasada1972

2018/06/19 15:44

Swingは、初心者ですが、これからも。よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問