gpt4 book ai didi

java - 使用 Java 中的菜单项在标准计算器和科学计算器之间更改形式

转载 作者:行者123 更新时间:2023-12-02 01:00:02 27 4
gpt4 key购买 nike

我有一个用java创建的标准计算器和科学计算器,都有菜单栏和菜单项“标准”和“科学”在两者之间切换,但我不知道如何实际使用计算器单击选项时会发生更改。

到目前为止的代码:

import java.awt.FlowLayout;
import javax.swing.*;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class regCalc implements ActionListener
{
JFrame frame = new JFrame ("Standard Calculator");

//JPanels for standard and scientific
JPanel panelstand = new JPanel (new FlowLayout ());
JPanel panelsci = new JPanel (new FlowLayout());

JMenuBar menuBar = new JMenuBar();

JMenu view = new JMenu ("View");
JMenuItem standard = new JMenuItem("Standard");
JMenuItem scientific = new JMenuItem("Scientific");

JTextArea text = new JTextArea (1,20);

JButton but1 = new JButton ("1");
JButton but2 = new JButton ("2");
JButton but3 = new JButton ("3");
JButton but4 = new JButton ("4");
JButton but5 = new JButton ("5");
JButton but6 = new JButton ("6");
JButton but7 = new JButton ("7");
JButton but8 = new JButton ("8");
JButton but9 = new JButton ("9");
JButton but0 = new JButton ("0");

JButton butAdd = new JButton ("+");
JButton butSub = new JButton ("-");
JButton butMult = new JButton ("*");
JButton butDiv = new JButton ("/");
JButton butEq = new JButton ("=");
JButton butClear = new JButton ("C");

Double number1, number2, result;
int addc =0, subc=0, multc=0, divc=0;

public void ui()
{
frame.setVisible(true);

panelstand.setVisible(true);
panelsci.setVisible(false);

frame.setSize(270,230);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setJMenuBar(menuBar);
view.add(standard);
view.add(scientific);
menuBar.add(view);

frame.add(panelstand);

panelstand.add(text);

panelstand.add(but1);
panelstand.add(but2);
panelstand.add(but3);
panelstand.add(but4);
panelstand.add(but5);
panelstand.add(but6);
panelstand.add(but7);
panelstand.add(but8);
panelstand.add(but9);
panelstand.add(but0);

panelstand.add(butAdd);
panelstand.add(butSub);
panelstand.add(butMult);
panelstand.add(butDiv);
panelstand.add(butEq);
panelstand.add(butClear);

but1.addActionListener(this);
but2.addActionListener(this);
but3.addActionListener(this);
but4.addActionListener(this);
but5.addActionListener(this);
but6.addActionListener(this);
but7.addActionListener(this);
but8.addActionListener(this);
but9.addActionListener(this);
but0.addActionListener(this);

butAdd.addActionListener(this);
butSub.addActionListener(this);
butMult.addActionListener(this);
butDiv.addActionListener(this);
butEq.addActionListener(this);
butClear.addActionListener(this);
}

@Override
public void actionPerformed(ActionEvent e) {

Object source = e.getSource();

if (source == but1)
{
text.append("1");
}

if (source == but2)
{
text.append("2");
}

if (source == but3)
{
text.append("3");
}

if (source == but4)
{
text.append("4");
}

if (source == but5)
{
text.append("5");
}

if (source == but6)
{
text.append("6");
}

if (source == but7)
{
text.append("7");
}

if (source == but8)
{
text.append("8");
}

if (source == but9)
{
text.append("9");
}

if (source == but0)
{
text.append("0");
}

if (source == butAdd)
{
number1=number_Reader();
text.setText("");
addc=1;
subc=0;
multc=0;
divc=0;
}

if (source == butSub)
{
number1=number_Reader();
text.setText("");
addc=0;
subc=1;
multc=0;
divc=0;
}

if (source == butMult)
{
number1=number_Reader();
text.setText("");
addc=0;
subc=0;
multc=1;
divc=0;
}

if (source == butDiv)
{
number1=number_Reader();
text.setText("");
addc=0;
subc=0;
multc=0;
divc=1;
}

if (source == butEq)
{
number2=number_Reader();
if (addc > 0)
{
result = number1+number2;
text.setText(Double.toString(result));
}

if (subc > 0)
{
result = number1-number2;
text.setText(Double.toString(result));
}

if (multc > 0)
{
result = number1*number2;
text.setText(Double.toString(result));
}

if (divc > 0)
{
result = number1/number2;
text.setText(Double.toString(result));
}
}

if (source == butClear)
{
number1=0.0;
number2=0.0;
text.setText("");
}

if (view == scientific)
{
frame.add(scientific);
}

}

public double number_Reader()
{
double num1;
String s;
s=text.getText();
num1=Double.valueOf(s);
return num1;
}
}

最佳答案

您可能正在寻找诸如CardLayout之类的东西,它使您能够使用布局在两个面板之间切换。

关于java - 使用 Java 中的菜单项在标准计算器和科学计算器之间更改形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10286754/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com