私は10個のjcheckboxを持っていますが、5つだけを選択してください。私はすでにこのすべてのコーディングを行ったが、私はどのようにjlabelに選択した5を表示するのか分からない。私はこのコードでそれをやってみました:jcheckboxをjlabelに表示
JCheckBox check;
JPanel panel=new JPanel();
for(int i=0; i<10; i++){
check=new JCheckBox();
check.addActionListener(listener);
check.setName("Select"+i);
panel.add(check);
}
これはlistener
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
check = (JCheckBox) e.getSource();
name=check.getName();
}
};
であり、これはそれがJLabelの
panel2=new JPanel(new GridLayout(5,1));
for(int i=0; i<5; i++){
txtVote=new JLabel(name);
panel2.add(txtVote);
}
が、このコードを使用してに表示されるべきパネルで、 jlabelには何も表示されません。私はこのにlistener
を変更した場合:
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
check = (JCheckBox) e.getSource();
txtVote.setText(check.getName());
}
};
それだけで最後のラベルに表示されます。他のラベルは空白になります。助けてください、ここでEDIT
が
public class JCheckBoxtoLabel{
JCheckBox check;
String name;
JLabel txtVote;
public JCheckBoxtoLabel() {
JFrame frame = new JFrame();
JPanel panel = createPanel();
JPanel panel2 = panel2();
frame.setLayout(new GridLayout(1,2));
frame.add(panel); frame.add(panel2);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 300);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private JPanel createPanel() {
JPanel panel=new JPanel(new GridLayout(10,1));
for(int i=0; i<10; i++){
check=new JCheckBox();
check.addActionListener(listener);
check.setName("Select"+i);
panel.add(check);
}
return panel;
}
private JPanel panel2(){
JPanel panel2=new JPanel(new GridLayout(5,1));
for(int i=0; i<5; i++){
txtVote=new JLabel();
txtVote.setBorder(BorderFactory.createLineBorder(Color.RED));
panel2.add(txtVote);
}
return panel2;
}
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
check = (JCheckBox) e.getSource();
txtVote.setText(check.getName());
}
};
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new JCheckBoxtoLabel();
}
});
}
}
コードスニペットが役立ちますが、この状況ではコードがどのように結びついているかは実際には重要なことです。したがって、実際にはさらに[mcve]をしたいと考えています。これは、コンパイル、実行、および私たちの問題を表示する、ここに(リンクではなく)投稿された小さなプログラムです(フルプログラムではありません)。詳しくは、[mcve]リンクをご覧ください。 –
こんにちは?再度、[MCVE](http://stackoverflow.com/help/mcve)コードを検討してください。また、5つのJLabelではなく、JListに名前を表示することもできます。 –
@HovercraftFullOfEelsああ私はすでにそれを編集しています。D – luh