前提・実現したいこと
Java Swingを用いて一定回数(設定値のカウント)を超えたときに画像が変更されるようにしたい。
Java SwingでButtonクラス、Mainクラスの2種類を用いて、ボタンコマンド(今回は愛でる)を10回押すと画像が変更されるようにしたいのですが、全然画像が変わらなく全くどうすればいいのかわからないです。独学なため何が足りないとかあれば教えてほしいです。
発生している問題・エラーメッセージ
画像が切り替わらない。
エラーメッセージ ```エラーは発生しない。 ### 該当のソースコード Mainクラスは以下 import java.awt.BorderLayout; import java.awt.Container; import java.awt.image.BufferedImage; import java.awt.event.*; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; public class Main{ public static void main(String[]args){ Button a=new Button(); JFrame frame=new JFrame("イカちゃん"); frame.setSize(700,460);//一つ目が横 二つ目が縦の画面サイズ 単位はピクセル frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// xボタンを押したときの動作。今回は閉じる。 Container contentPane=frame.getContentPane();//合紙のようなもので、白い部分を表示させている。 JLabel label=new JLabel("イカちゃんを愛でよう!あ、拡大はしないで欲しいでゲソ");//文字列 label.setHorizontalAlignment(JLabel.CENTER);//文字列を中央に表示 JButton button=new JButton("愛でる");//ボタン ImageIcon icon=new ImageIcon("C:/イカ愛で/img1.png");//\の所は/でも動く JLabel picture=new JLabel(icon);//画像 contentPane.add(picture,BorderLayout.CENTER);//画像の貼り付け contentPane.add(label,BorderLayout.NORTH);//文字列の貼り付け contentPane.add(button,BorderLayout.SOUTH);//ボタンの貼り付け frame.setVisible(true);//ウィンドウを可視化。 } } Buttonクラスは以下の通り import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JFrame; import java.awt.Container; import java.awt.BorderLayout; import java.awt.event.*; public class Button extends JFrame implements ActionListener{ private int jbuttoncount=10; int count=0; public int getJbuttoncount(){return this.jbuttoncount;} public void setjbuttoncount(int jbuttoncount){this.jbuttoncount=jbuttoncount;} JLabel label; Button(){ this.count++; ImageIcon icon=new ImageIcon("C:/イカ愛で/img1.png"); JLabel label=new JLabel(icon); } public void actionPerformed(ActionEvent e){ if(this.jbuttoncount<this.count){ ImageIcon icon=new ImageIcon("C:/イカ愛で/img4.png"); JLabel label=new JLabel(icon); Container contentPane=new Container(); contentPane.add(label,BorderLayout.CENTER);//画像の貼り付け } } } ```ここに言語名を入力 Java
試したこと
if構文やオブジェクト指向などを用いてMainクラスと分け、画像が変わるようにした。
補足情報(FW/ツールのバージョンなど)
jdk-12.0.1
回答1件
あなたの回答
tips
プレビュー