問題文
実行例のように,表示用に 1 つのラベル,制御用に 3 つのラジオボタン(他のボタンと排他),3 つのチェックボックス,1 つのボタンがコンテントペーンに配置されている.「状態取得」のボタンを押したとき,ラジオボタンとチェックボックスの状態を取得し,選択されているものをカンマ(,)区切りでラベルに表示するプログラムを作成しなさい.ただし,ウィンドウサイズは横 480 画素,縦 300 画素とし,ウィンドウのタイトルに「課題5」と表示すること.また,ウィンドウはプログラムの起動時にディスプレイの中央に表示されるようにすること.
java
1public class Kadai5 { 2 3 ここに必要なプロパティとメソッドを書く. 4 5 public static void main(String[] args) { 6 SwingUtilities.invokeLater(new Runnable() { 7 public void run() { 8 Kadai5 application = new Kadai5(); 9 application.getJFrame().setVisible(true); 10 } 11 }); 12 } 13}
実行例
コード
java
1package kadai; 2 3import java.awt.FlowLayout; 4import java.awt.event.ActionEvent; 5import java.awt.event.ActionListener; 6 7import javax.swing.ButtonGroup; 8import javax.swing.JButton; 9import javax.swing.JCheckBox; 10import javax.swing.JFrame; 11import javax.swing.JPanel; 12import javax.swing.JRadioButton; 13 14public class Kadai5 { 15 public static void main(String[] args) { 16 // TODO 自動生成されたメソッド・スタブ 17 JFrame jf = new JFrame("課題5"); 18 jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 19 jf.setSize(480, 300); 20 jf.setLocationRelativeTo(null); 21 22 JPanel cp = (JPanel)jf.getContentPane(); 23 cp.setLayout(new FlowLayout()); 24 25 JCheckBox jc1 = new JCheckBox("チェックボックス1"); 26 JCheckBox jc2 = new JCheckBox("チェックボックス2"); 27 JCheckBox jc3 = new JCheckBox("チェックボックス3"); 28 cp.add(jc1); 29 cp.add(jc2); 30 cp.add(jc3); 31 32 JRadioButton jr1 = new JRadioButton("ラジオボタン1"); 33 jr1.setVerticalAlignment(JRadioButton.TOP); 34 cp.add(jr1); 35 36 JRadioButton jr2 = new JRadioButton("ラジオボタン2"); 37 jr2.setVerticalAlignment(JRadioButton.CENTER); 38 cp.add(jr2); 39 40 JRadioButton jr3 = new JRadioButton("ラジオボタン3"); 41 jr3.setVerticalAlignment(JRadioButton.BOTTOM); 42 cp.add(jr3); 43 44 ButtonGroup bg = new ButtonGroup(); 45 bg.add(jr1); 46 bg.add(jr2); 47 bg.add(jr3); 48 49 JButton jb = new JButton("状態取得"); 50 jb.setBounds(0, 250, 480, 50); 51 cp.add(jb); 52 jb.addActionListener(new MyActionListener()); 53 54 jf.setVisible(true); 55 } 56 57} 58 59class MyActionListener implements ActionListener { 60 public void actionPerformed (ActionEvent e) { 61 // ボタンが押されたら 62 if (jc1.isSelected()) { 63 System.out.println("チェックボックス1,"); 64 } 65 if (jc2.isSelected()) { 66 System.out.println("チェックボックス2,"); 67 } 68 if (jc3.isSelected()) { 69 System.out.println("チェックボックス3,"); 70 } 71 } 72}
エラー文
Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problems: jc1 を解決できません jc2 を解決できません jc3 を解決できません at kadai/kadai.MyActionListener.actionPerformed(Kadai5.java:68) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389) at java.desktop/java.awt.Component.processEvent(Component.java:6391) at java.desktop/java.awt.Container.processEvent(Container.java:2266) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
自分のコードの実行例
質問
- ラジオボタンとチェックボックスを縦列にする方法が分かりません.
- ボタンの位置と大きさを指定しているが,反映されません.
jc1,jc2,jc3を解決できません
の解決方法が分かりません.- また,課題文の例文の
ここに必要なプロパティとメソッドを書く
のところにまとめる方法が分かりません.
以上よろしくお願いいたします.
回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2022/07/12 00:08