itemlistenerの部分で質問です
表示がうまくいきません
java
1import java.awt.Color; 2import java.awt.GridLayout; 3import java.awt.event.ItemEvent; 4import java.awt.event.ItemListener; 5 6import javax.swing.ButtonGroup; 7import javax.swing.JFrame; 8import javax.swing.JLabel; 9import javax.swing.JPanel; 10import javax.swing.JRadioButton; 11 12@SuppressWarnings("serial") 13public class No1 extends JFrame implements ItemListener { 14 JRadioButton[] rb; 15 String[] str = { "3本", "4本", "5本", "6本" }; 16 JPanel p, p1, p2; 17 JLabel[][] s; 18 JLabel[] l, a; 19 20 No1() { 21 p = new JPanel(); 22 p1 = new JPanel(); 23 p2 = new JPanel(); 24 rb = new JRadioButton[4]; 25 l = new JLabel[5]; 26 a = new JLabel[5]; 27 s = new JLabel[5][5]; 28 ButtonGroup bg = new ButtonGroup(); 29 for (int i = 0; i < rb.length; i++) { 30 rb[i] = new JRadioButton(str[i]); 31 bg.add(rb[i]); 32 rb[i].addItemListener(this); 33 34 } 35 36 p.setLayout(new GridLayout(2, 1)); 37 p1.add(rb[0]); 38 p1.add(rb[1]); 39 p1.add(rb[2]); 40 p1.add(rb[3]); 41 42 p2.setLayout(new GridLayout(5, 1)); 43 for (int i = 0; i < l.length; i++) { 44 l[i] = new JLabel(); 45 p2.add(l[i]); 46 } 47 48 p.add(p1); 49 p.add(p2); 50 51 add(p); 52 53 a[0] = new JLabel("赤いワイヤー"); a[0].setForeground(Color.RED); 54 a[1] = new JLabel("青いワイヤー"); a[1].setForeground(Color.BLUE); 55 a[2] = new JLabel("黄色いワイヤー"); a[2].setForeground(Color.YELLOW); 56 a[3] = new JLabel("黒いワイヤー"); a[3].setForeground(Color.BLACK);; 57 58 59 60 s[0][0] = new JLabel( "ア)"+a[0]+"ない場合、ワイヤー2を切断します。"); 61 s[0][1] = new JLabel("イ)一番下のワイヤーが白い場合、そのワイヤーを切断します。"); 62 s[0][2] = new JLabel("ウ)青いワイヤーが複数ある場合、青いワイヤーの中で一番下のものを切断します。"); 63 s[0][3] = new JLabel("エ)ワイヤー3を切断します。"); 64 65 s[1][0] = new JLabel( "ア)赤いワイヤーが複数あり、かつシリアルナンバーの最後の桁が奇数なら、赤いワイヤーの中で一番下のものを切断します。"); 66 s[1][1] = new JLabel("イ)一番下のワイヤーが黄色く、かつ赤いワイヤーがない場合、ワイヤー1を切断します。"); 67 s[1][2] = new JLabel("ウ)青いワイヤーが一本だけの場合、ワイヤー1を切断します。"); 68 s[1][3] = new JLabel("エ)黄色いワイヤーが複数ある場合、ワイヤー4を切断します。"); 69 s[1][4] = new JLabel("オ)ワイヤー2を切断します。" ); 70 71 s[2][0] = new JLabel( "ア)一番下のワイヤーが黒く、かつシリアルナンバーの最後の桁が奇数なら、ワイヤー4を切ります"); 72 s[2][1] = new JLabel("イ)赤いワイヤーが一本だけ、かつ黄色いワイヤーが複数ある場合、ワイヤー1を切断します。"); 73 s[2][2] = new JLabel("ウ)黒いワイヤーがない場合、ワイヤー2を切断します。"); 74 s[2][3] = new JLabel("エ)ワイヤー1を切断します。" ); 75 76 s[3][0] = new JLabel("ア)黄色いワイヤーがなく、かつシリアルナンバーの最後の桁が奇数なら、ワイヤー3を切断します"); 77 s[3][1] = new JLabel("イ)黄色いワイヤーが一本だけ、かつ白いワイヤーが複数ある場合、ワイヤー4を切断します。"); 78 s[3][2] = new JLabel("ウ)赤いワイヤーがない場合、ワイヤー6を切断します。"); 79 s[3][3] = new JLabel("エ)ワイヤー4を切断します。"); 80 81 } 82 83 @Override 84 public void itemStateChanged(ItemEvent e) { 85 86 if (rb[0].isSelected()) { 87 for (int i = 0; i < 5; i++) { 88 if (i == 4) { 89 l[4].setText(""); 90 } else { 91 l[i].add(s[0][i]); 92 } 93 } 94 } else if (rb[1].isSelected()) { 95 for (int i = 0; i < 5; i++) { 96 l[i].add(s[1][i]); 97 } 98 } else if (rb[2].isSelected()) { 99 for (int i = 0; i < 5; i++) { 100 if (i == 4) { 101 l[4].setText(""); 102 } else { 103 l[i].add(s[2][i]); 104 } 105 } 106 } else if (rb[3].isSelected()) { 107 for (int i = 0; i < 5; i++) { 108 if (i == 4) { 109 l[4].setText(""); 110 } else { 111 l[i].add(s[3][i]); 112 } 113 } 114 } 115 for(int i=0; i<l.length; i++) { 116 p2.add(l[i]); 117 } 118 p.add(p2); 119 add(p); 120 p.repaint(); 121 }; 122 123 public static void main(String[] args) { 124 No1 f = new No1(); 125 126 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 127 f.setTitle("配線"); 128 f.setSize(760, 300); 129 f.setVisible(true); 130 } 131 132} 133