Java 当我在组合框中选择一个选项时,它也会将另一个组合框的选项更改为相同的选项,并且不应';T

Java 当我在组合框中选择一个选项时,它也会将另一个组合框的选项更改为相同的选项,并且不应';T,java,swing,combobox,Java,Swing,Combobox,我正在制作一个单元转换器,但是遇到了组合框的问题,我已经去掉了剩下的代码,只剩下足够的代码来显示问题 在我的组合框中,第一个给了我一个选择:长度单位或时间单位,在我选择一个之后,它会为每个组合框加载不同的模型。这就是问题所在。当我为:length或time模型选择一个选项时,它会将两个组合框更改为相同的选项,我不希望这样。我希望每个盒子都有不同的选择,例如(厘米)和(米) 导入java.awt.Toolkit; 导入javax.swing.DefaultComboxModel; 公共类TestC

我正在制作一个单元转换器,但是遇到了组合框的问题,我已经去掉了剩下的代码,只剩下足够的代码来显示问题

在我的组合框中,第一个给了我一个选择:长度单位或时间单位,在我选择一个之后,它会为每个组合框加载不同的模型。这就是问题所在。当我为:length或time模型选择一个选项时,它会将两个组合框更改为相同的选项,我不希望这样。我希望每个盒子都有不同的选择,例如(厘米)和(米)

导入java.awt.Toolkit;
导入javax.swing.DefaultComboxModel;
公共类TestConverter扩展了javax.swing.JFrame{
公共TestConverter(){
初始化组件();
设置大小(350225);//设置帧的起始大小
setLocationRelativeTo(null);//启动时将帧居中
comboBoxFrom.setSelectedIndex(0);//comboBox从索引0开始(列表中的第一项)-1将框置为空
comboBoxTo.setSelectedIndex(0);
}
@抑制警告(“未选中”)
//                           
私有组件(){
comboBoxFrom=newjavax.swing.JComboBox();
comboBoxTo=newjavax.swing.JComboBox();
btnReset=newjavax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle(“单元转换器2”);
setFont(新java.awt.Font(“铜版哥特式灯光”,1,14));//NOI18N
可设置大小(假);
setModel(新的javax.swing.DefaultComboxModel(新字符串[]{“选择一个…”、“长度单位”、“时间单位”});
comboBoxFrom.addActionListener(新java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
comboBoxFromActionPerformed(evt);
}
});
setModel(新的javax.swing.DefaultComboxModel(新字符串[]{“选择一个…”,“}”);
comboBoxTo.setToolTipText(“”);
comboBoxTo.setEnabled(false);
comboBoxTo.addActionListener(新java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
comboBoxToActionPerformed(evt);
}
});
btnReset.setBackground(新java.awt.Color(0,204,0));
setFont(新的java.awt.Font(“Tahoma”,1,12));//NOI18N
set前台(新java.awt.Color(204,0,0));
btnReset.setText(“重置”);
btnReset.setActionCommand(“转换为”);
addActionListener(新的java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
b已执行的重置(evt);
}
});
javax.swing.GroupLayout=newjavax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(布局);
layout.setHorizontalGroup(
createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.training)
.addGroup(layout.createSequentialGroup()
.addGap(148148148148)
.addComponent(btnReset)
.addContainerGap(617,简称最大值))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,layout.createSequentialGroup()
.addGap(187187187187)
.addComponent(comboBoxTo,javax.swing.GroupLayout.PREFERRED_SIZE,135,javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addGap(186186186186)
.addComponent(comboBoxFrom,javax.swing.GroupLayout.PREFERRED_SIZE,135,javax.swing.GroupLayout.PREFERRED_SIZE))
);
layout.setVerticalGroup(
createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(35,35,35)
.addComponent(comboBoxFrom,javax.swing.GroupLayout.PREFERRED_SIZE,39,javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18,18,18)
.addComponent(btnReset)
.addGap(18,18,18)
.addComponent(comboBoxTo,javax.swing.GroupLayout.PREFERRED_SIZE,39,javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(346,简称最大值))
);
包装();
setLocationRelativeTo(空);
}//                         
private void comboBoxFromActionPerformed(java.awt.event.ActionEvent evt){
字符串长度[]={“厘米”、“英尺”、“英寸”、“公里”、“光年”、“英里”、“米”、“码”};
字符串时间单位[]={“小时”、“毫秒”、“分钟”、“秒”};
if(comboBoxFrom.getSelectedItem().equals(“长度单位”)){
comboBoxTo.setEnabled(true);//将comboBoxTo设置为激活
DefaultComboxModel length=new DefaultComboxModel(lengthUnits);//创建一个新模型并从数组lengthUnits填充它
comboBoxFrom.setModel(长度);
comboBoxTo.setModel(长度);
}
else if(comboBoxFrom.getSelectedItem().equals(“时间单位”)){
comboBoxTo.setEnabled(true);//将comboBoxTo设置为激活
DefaultComboxModel时间=新建DefaultComboxModel(时间单位);//创建一个新模型并从数组长度单位填充它
comboBoxFrom.setModel(时间);
comboBoxTo.setModel(时间);
}
}                                            
private void ComboxToActionPerformed(java.awt.event.ActionEvent evt){
}                                          
private void btnResetActionPerformed(java.awt.event.ActionEvent evt){
字符串comboStart[]={“选择一个…”、“长度单位”、“时间单位”};
DefaultComboxModel重置=新的DefaultComboxModel(comboStart);
comboBoxFrom.setModel(重置);
comboBoxTo.setModel(重置);
import java.awt.Toolkit;
import javax.swing.DefaultComboBoxModel;



public class TestConverter extends javax.swing.JFrame {




public TestConverter() {
    initComponents();
    setSize(350,225);  //set the starting size of frame
    setLocationRelativeTo(null);     //on startup centers the frame
    comboBoxFrom.setSelectedIndex(0);    //comboBox starts at index 0(first item in list) -1 puts box empty
    comboBoxTo.setSelectedIndex(0);

}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    comboBoxFrom = new javax.swing.JComboBox<>();
    comboBoxTo = new javax.swing.JComboBox<>();
    btnReset = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setTitle("Unit Converter2");
    setFont(new java.awt.Font("Copperplate Gothic Light", 1, 14)); // NOI18N
    setResizable(false);

    comboBoxFrom.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Choose One..", "Length Units", "Time Units" }));
    comboBoxFrom.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            comboBoxFromActionPerformed(evt);
        }
    });

    comboBoxTo.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Choose One..", " " }));
    comboBoxTo.setToolTipText("");
    comboBoxTo.setEnabled(false);
    comboBoxTo.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            comboBoxToActionPerformed(evt);
        }
    });

    btnReset.setBackground(new java.awt.Color(0, 204, 0));
    btnReset.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
    btnReset.setForeground(new java.awt.Color(204, 0, 0));
    btnReset.setText("Reset");
    btnReset.setActionCommand("Convert To");
    btnReset.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btnResetActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
            .addGroup(layout.createSequentialGroup()
                .addGap(148, 148, 148)
                .addComponent(btnReset)
                .addContainerGap(617, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                .addGap(187, 187, 187)
                .addComponent(comboBoxTo, javax.swing.GroupLayout.PREFERRED_SIZE, 135, javax.swing.GroupLayout.PREFERRED_SIZE)))
        .addGroup(layout.createSequentialGroup()
            .addGap(186, 186, 186)
            .addComponent(comboBoxFrom, javax.swing.GroupLayout.PREFERRED_SIZE, 135, javax.swing.GroupLayout.PREFERRED_SIZE))
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addGap(35, 35, 35)
            .addComponent(comboBoxFrom, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addGap(18, 18, 18)
            .addComponent(btnReset)
            .addGap(18, 18, 18)
            .addComponent(comboBoxTo, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addContainerGap(346, Short.MAX_VALUE))
    );

    pack();
    setLocationRelativeTo(null);
}// </editor-fold>                        

private void comboBoxFromActionPerformed(java.awt.event.ActionEvent evt) {                                             

    String lengthUnits[] = {"Centimeters", "Feet", "Inches", "Kilometers", "Light Years", "Miles", "Meters", "Yards" };
    String timeUnits[] = {"Hours", "Milliseconds", "Minutes", "Seconds"};
    if(comboBoxFrom.getSelectedItem().equals("Length Units")){
        comboBoxTo.setEnabled(true);  //set the comboBoxTo to be activated
        DefaultComboBoxModel length = new DefaultComboBoxModel(lengthUnits);  //makes a new model and fills it from the array lengthUnits
        comboBoxFrom.setModel( length );
        comboBoxTo.setModel(length);
    }
    else if(comboBoxFrom.getSelectedItem().equals("Time Units")){
        comboBoxTo.setEnabled(true);   //set the comboBoxTo to be activated
        DefaultComboBoxModel time = new DefaultComboBoxModel(timeUnits);  //makes a new model and fills it from the array lengthUnits
        comboBoxFrom.setModel( time );
        comboBoxTo.setModel(time);
    }

}                                            

private void comboBoxToActionPerformed(java.awt.event.ActionEvent evt) {                                           

}                                          

private void btnResetActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String comboStart[] = {"Choose one..", "Length Units", "Time Units"};
    DefaultComboBoxModel reset = new DefaultComboBoxModel(comboStart);
    comboBoxFrom.setModel(reset);
    comboBoxTo.setModel(reset);
    comboBoxFrom.setSelectedIndex(0); // starts the comboBox at index 0. type -1 to start it empty
    comboBoxTo.setSelectedIndex(0);
    comboBoxTo.setEnabled(false);



}                                        

public static void main(String args[]) {

    try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(ConverterV2.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(ConverterV2.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(ConverterV2.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(ConverterV2.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }

    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new TestConverter().setVisible(true);
        }
    });
}

// Variables declaration - do not modify                     
private javax.swing.JButton btnReset;
private javax.swing.JComboBox<String> comboBoxFrom;
private javax.swing.JComboBox<String> comboBoxTo;
// End of variables declaration                   

private void setIcon() { //method to get the icon image for jFrame
   setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("Icon.png"))); 
}
    DefaultComboBoxModel length = new DefaultComboBoxModel(lengthUnits);  //makes a new model and fills it from the array lengthUnits
    comboBoxFrom.setModel( length );
    comboBoxTo.setModel(length);
    comboBoxFrom.setModel( new DefaultComboBoxModel( lengthUnits ) );
    comboBoxTo.setModel( new DefaultComboBoxModel( lengthUnits ) );