【问题标题】:How to display 2 if statement at the same time JAVAJAVA如何同时显示2个if语句
【发布时间】:2015-11-20 04:30:50
【问题描述】:
private class ButtonHandler implements ActionListener
  {
    @Override
    public void actionPerformed(ActionEvent e) 
    {
         if(checkboxcheck1 == 1)
            {
             textFieldSum.setText(String.valueOf(counter));
            }
         else if (checkboxcheck2 == 1)
         {
              textFieldSum1.setText(String.valueOf(counter1));
         }

         else
             {
              checkboxcheck1 = 0;
             }
    }   

我创建了 2 个复选框、1 个按钮和 2 个文本字段。当我单击复选框然后单击按钮时,文本字段将显示结果。如果我同时单击 2 个复选框,我想让按钮显示结果。有人能帮帮我吗。我想写一个循环,但我不知道怎么写。非常感谢大家的帮助。

编辑 1:这是我的全部代码

public class Count extends JFrame

{

private JLabel labelSum = new JLabel("Display: ");

private JTextField textFieldSum = new JTextField(1);

private JCheckBox chckbxNewCheckBox1 = new JCheckBox("A");

private JButton btnYes = new JButton("YES");

private JTextField textFieldSum1 = new JTextField(1);

private JCheckBox chckbxNewCheckBox2 = new JCheckBox("B");

private int counter;

private int counter1;

private int checkboxcheck1 = 0;

private int checkboxcheck2 = 0;

public Count()

{
    super("Yolo Coto");

    super.setBounds(150, 150, 500, 500);

    GridBagLayout gridBagLayout = new GridBagLayout();

    gridBagLayout.columnWidths = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

    gridBagLayout.rowHeights = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

    gridBagLayout.columnWeights = new double[]{0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, Double.MIN_VALUE};

    gridBagLayout.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};

    super.getContentPane().setLayout(gridBagLayout);

    //checkbox

    add(chckbxNewCheckBox1);

    textFieldSum.setEditable(false);

    CheckBoxHandler handler = new CheckBoxHandler();

    chckbxNewCheckBox1.addItemListener(handler);

    //textfield

    add(textFieldSum);

    //button

    add(btnYes);

    ButtonHandler handler1 = new ButtonHandler();

    btnYes.addActionListener(handler1);


    //checkbox2

    add(chckbxNewCheckBox2);

    textFieldSum1.setEditable(false);

    chckbxNewCheckBox2.addItemListener(handler);

    //textfield2

    add(textFieldSum1);

    //readfile

    BufferedReader reader;

    int counterA = 0;

    int counterB = 0;

    try {

        reader = new BufferedReader(new FileReader("in.txt"));

        int data;

        while ((data = reader.read()) != -1)

        {

            char charA = 'A';

            char charB = 'B';

           // char[] charArray = { 'A', 'B', 'C', 'D', 'E' };

            if (charA == (char) data) 

            {
                counterA++;
            }    

            if (charB == (char) data) 
            {
                counterB++;
            }     
        }
        counter1 = counterB;
        counter = counterA;
        reader.close();
    } 
    catch (IOException ioException) 
    {
        System.err.println("Error Opening File: Terminating");
        System.exit(1);
    }     
}     
  private class CheckBoxHandler implements ItemListener
    {
    @Override
    public void itemStateChanged(ItemEvent e) 
    {
        if(chckbxNewCheckBox1.isSelected())
        {
            checkboxcheck1 = 1;

        }
        else if(chckbxNewCheckBox2.isSelected())
        {
            checkboxcheck2 = 1;
        }
        else if (chckbxNewCheckBox1.isSelected() && chckbxNewCheckBox2.isSelected())
        {
            checkboxcheck1 = 1;
            checkboxcheck2 = 1;
        }
    }
    }

  private class ButtonHandler implements ActionListener
  {
    @Override
    public void actionPerformed(ActionEvent e) 
    {
         if(checkboxcheck1 == 1)
            {
             textFieldSum.setText(String.valueOf(counter));
            }
         else if (checkboxcheck2 == 1)
         {
              textFieldSum1.setText(String.valueOf(counter1));
         }
         else if (checkboxcheck1 == 1 && checkboxcheck2 == 1)
         {
             textFieldSum.setText(String.valueOf(counter));
             textFieldSum1.setText(String.valueOf(counter1));
         }
         else
         {
            checkboxcheck1 = 0;
         }
    }   

我想要的只是当我同时单击复选框并单击按钮时,它会在该文本字段中显示结果。或者我单击单个复选框,它仍然在该单个文本字段中显示结果。因为我的真实程序中还有 20 个复选框。基本上,我想要的只是单击任何复选框,然后单击按钮,它将显示结果。

【问题讨论】:

  • 你的意思是if(checkboxcheck1 == 1 && checkboxcheck2 == 1) ..
  • 你能发布一段可重现的代码吗?这样我们就可以提出解决方案/建议。
  • 如果这是 Swing,你必须使用 checkboxcheck1.isSelected() 并且你只需要摆脱 else if。将其作为 2 个单独的 if 语句。

标签: java loops if-statement


【解决方案1】:

如果您的意思是必须单击两个复选框才能显示按钮,那么可能是这样吗?

private class ButtonHandler implements ActionListener
  {
    @Override
    public void actionPerformed(ActionEvent e) 
    {
         if(checkboxcheck1 == 1 && checkboxcheck2 == 1)
            {
             textFieldSum.setText(String.valueOf(counter));
            }
    }   

【讨论】:

    【解决方案2】:

    听起来你想要一个包含两个条件的 if 语句。 && 运算符是您想要的。

    private class ButtonHandler implements ActionListener
      {
        @Override
        public void actionPerformed(ActionEvent e) 
        {
             if(checkboxcheck1 == 1)
                {
                 textFieldSum.setText(String.valueOf(counter));
                }
             else if (checkboxcheck2 == 1)
             {
                  textFieldSum1.setText(String.valueOf(counter1));
             }
             else if (checkboxcheck1 == 1 && checkboxcheck2 == 1)
             {
                 //do something
             }
             else
             {
                checkboxcheck1 = 0;
             }
        }   
    

    【讨论】:

    • 我有点想要一种方法来做到这一点,因为我的真实程序中还有 20 个复选框。
    【解决方案3】:

    好吧,我真是太愚蠢了。先选中所有复选框,然后再选中。

     private class CheckBoxHandler implements ItemListener
        {
        @Override
        public void itemStateChanged(ItemEvent e) 
        {
            if (chckbxNewCheckBox1.isSelected() && chckbxNewCheckBox2.isSelected())
            {
                checkboxcheck1 = 1;
                checkboxcheck2 = 1;
    
            }
            else if(chckbxNewCheckBox1.isSelected())
            {
                checkboxcheck1 = 1;
    
            }
            else if(chckbxNewCheckBox2.isSelected())
            {
                checkboxcheck2 = 1;
    
            }
        }
        }
    
      private class ButtonHandler implements ActionListener
      {
        @Override
        public void actionPerformed(ActionEvent e) 
        {
             if (checkboxcheck1 == 1 && checkboxcheck2 == 1)
             {
                 textFieldSum.setText(String.valueOf(counter));
                 textFieldSum1.setText(String.valueOf(counter1));
             }
             else if(checkboxcheck1 == 1)
                {
                 textFieldSum.setText(String.valueOf(counter));
                }
             else if (checkboxcheck2 == 1)
             {
                  textFieldSum1.setText(String.valueOf(counter1));
             }
             else
             {
                checkboxcheck1 = 0;
             }
        }   
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-01
      • 2023-02-26
      • 2012-02-15
      • 2022-01-21
      • 2017-04-28
      • 2017-02-08
      • 1970-01-01
      • 2019-12-21
      相关资源
      最近更新 更多