每次单击in2cm的单选按钮并尝试转换时,单击转换按钮时都没有显示任何内容。如果可能的话,还会告诉我如何使用列表框,所以我将它放在一个列表框中,使GUI更容易使用。
ButtonGroup convertgroup=new ButtonGroup();
jr=new JRadioButton[10];
jr[0]=new JRadioButton("Inch to Cm");
l1 = new JTextField(25);
l2 = new JTextField(25);
length1 = new JLabel("ft", SwingConstants.LEFT);
length2 = new JLabel("cm", SwingConstants.LEFT);
convertgroup.add(jr[0]);
jr[1]=new JRadioButton("Meter to Feet");
length = new JLabel("m = ", SwingConstants.LEFT);
l1 = new JTextField(25);
l2 = new JTextField(25);
length1 = new JLabel("ft", SwingConstants.LEFT);
length2 = new JLabel("cm", SwingConstants.LEFT);
convertgroup.add(jr[1]);
jr[2]=new JRadioButton("Mile to Km");
Mi2Km = new JTextField(25);
Km2Mi = new JTextField(25);
length3 = new JLabel("Mile", SwingConstants.LEFT);
length4 = new JLabel("Km", SwingConstants.LEFT);
convertgroup.add(jr[2]);
jr[3]=new JRadioButton("Nautical Mile to Km");
Nmi2Km= new JTextField(25);
Km2Nmi= new JTextField(25);
jr[4]=new JRadioButton("League to Km");
Le2Km = new JTextField(25);
Km2Le = new JTextField(25);
submit = new JButton("Convert");
clear = new JButton("Clear");
quit = new JButton("Quit");
submit.addActionListener(this);
clear.addActionListener(this);
quit.addActionListener(this);
converterPanel.add(jr[0]);
converterPanel.add(jr[2]);
converterPanel.add(jr[1]);
converterPanel.add(l1);
converterPanel.add(length);
converterPanel.add(l2);
converterPanel.add(length1);
converterPanel.add(jr[3]);
converterPanel.add(jr[4]);
converterPanel.add(submit);
converterPanel.add(clear);
converterPanel.add(quit);
length.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
以下是执行的操作:
public void actionPerformed(ActionEvent event) {
if (event.getSource() == quit) {
System.exit(0);
}
if (event.getSource() == clear) {
l1.setText("");
l2.setText("");
}
if (event.getSource()== submit) {
if(!jr[0].isSelected() && !jr[1].isSelected() && !jr[2].isSelected())
JOptionPane.showMessageDialog(converterFrame,
"No RadioButton has been Selected ", "Warning",
JOptionPane.WARNING_MESSAGE);
if(jr[0].isSelected())
in2cm();
if(jr[1].isSelected()){
lengthConvert();
return;
}
}
}
我找到了问题并修复了它,但是每次选择jr [0]时如何更改jlabel?因为jr [1]中的jlabel是m和feet,而在jr [0]中我需要将它设置为cm。