Java 我希望我的整数堆叠在我的JTextField中

Java 我希望我的整数堆叠在我的JTextField中,java,swing,if-statement,actionlistener,jtextfield,Java,Swing,If Statement,Actionlistener,Jtextfield,我用10个if和if-else语句执行了一个action,在我的JTextField中显示了一个action,我将如何让它们堆叠起来,以生成多个数字的数字 我不需要任何人阅读所有的代码。我只想把actionPerformed中的int添加到堆栈中 我正在做一个基本的图形用户界面计算器 @Override public void actionPerformed(ActionEvent e) { if(e.getSource().equals(oneButton)){

我用10个if和if-else语句执行了一个action,在我的JTextField中显示了一个action,我将如何让它们堆叠起来,以生成多个数字的数字

我不需要任何人阅读所有的代码。我只想把actionPerformed中的int添加到堆栈中

我正在做一个基本的图形用户界面计算器

    @Override
public void actionPerformed(ActionEvent e) {
    if(e.getSource().equals(oneButton)){
        input1 = 1;
        text.setText(""+input);}
    else if (e.getSource().equals(twoButton)){
        input2 = 2;
        text.setText(""+input);}
    else if(e.getSource().equals(threeButton)){
        input3 = 3;
        text.setText(""+input);}
    else if(e.getSource().equals(fourButton)){
        input4 = 4;
        text.setText(""+input);}
    else if(e.getSource().equals(fiveButton)){
        input5 = 5;
        text.setText(""+input);}
    else if(e.getSource().equals(sixButton)){
        input6 = 6;
        text.setText(""+input);}
    else if(e.getSource().equals(sevenButton)){
        input7 = 7;
        text.setText(""+input);}
    else if(e.getSource().equals(eightButton)){
        input8 = 8;
        text.setText(""+input);}
    else if(e.getSource().equals(nineButton)){
        input9 = 9;
        text.setText(""+input);}
    else if(e.getSource().equals(zeroButton)){
        input0 = 0;
        text.setText(""+input);}

}
我代码的其余部分

//imports
public class Ken implements ActionListener{


static JButton oneButton = new JButton("1");
static JButton twoButton = new JButton("2");
static JButton threeButton = new JButton("3");
static JButton fourButton = new JButton("4");
static JButton fiveButton = new JButton("5");
static JButton sixButton = new JButton("6");
static JButton sevenButton = new JButton("7");
static JButton eightButton = new JButton("8");
static JButton nineButton = new JButton("9");
static JButton zeroButton = new JButton("0");
static JButton minusButton = new JButton("-");
static JButton timesButton = new JButton("*");
static JButton enterButton = new JButton("=");
static JButton dividButton = new JButton("/");
static JButton plusButton = new JButton("+");
public static int input;
public static int input1;
public static int input2;   
public static int input3;
public static int input4;
public static int input5;
public static int input6;
public static int input7;
public static int input8;
public static int input9;
public static int input0;
public static JTextField text = new JTextField("0", 9);
public Ken(){

    JFrame frame = new JFrame("MyCalc");





    frame.setSize(476, 500);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    frame.setResizable(false);
    FlowLayout fl = new FlowLayout(0, 30, 20);
    setLayout(fl);
    Border empty;
    empty = BorderFactory.createEmptyBorder();

    frame.getContentPane().setLayout(fl);

    Container con = frame.getContentPane();
    con.setBackground(Color.LIGHT_GRAY);
    Font f = new Font("MS UI Gothic", Font.BOLD, 40);
    Font f2 = new Font("Engravers MT", Font.PLAIN, 40);
    int bHeight = 80;
    int bWidth = 70;
    text.setBackground(Color.GREEN);
    text.setFont(f2);
    text.setPreferredSize(new Dimension(bHeight, bWidth));
    text.setEditable(false);


    frame.add(text, BorderLayout.NORTH);

    oneButton.setPreferredSize(new Dimension(bHeight, bWidth));
    oneButton.setBackground(Color.DARK_GRAY);
    oneButton.setForeground(Color.GREEN);
    oneButton.setFont(f);
    oneButton.addActionListener(this);
    frame.add(oneButton);

    twoButton.setPreferredSize(new Dimension(bHeight, bWidth));
    twoButton.setBackground(Color.DARK_GRAY);
    twoButton.setForeground(Color.GREEN);
    twoButton.setFont(f);
    twoButton.addActionListener(this);
    frame.add(twoButton);

    threeButton.setPreferredSize(new Dimension(bHeight, bWidth));
    threeButton.setBackground(Color.DARK_GRAY);
    threeButton.setForeground(Color.GREEN);
    threeButton.setFont(f);
    threeButton.addActionListener(this);
    frame.add(threeButton);

    plusButton.setPreferredSize(new Dimension(bHeight, bWidth));
    plusButton.setBackground(Color.DARK_GRAY);
    plusButton.setForeground(Color.GREEN);
    plusButton.setFont(f);
    plusButton.addActionListener(this);
    frame.add(plusButton);

    fourButton.setPreferredSize(new Dimension(bHeight, bWidth));
    fourButton.setBackground(Color.DARK_GRAY);
    fourButton.setForeground(Color.GREEN);
    fourButton.setFont(f);
    fourButton.addActionListener(this);
    frame.add(fourButton);

    fiveButton.setPreferredSize(new Dimension(bHeight, bWidth));
    fiveButton.setBackground(Color.DARK_GRAY);
    fiveButton.setForeground(Color.GREEN);
    fiveButton.setFont(f);
    fiveButton.addActionListener(this);
    frame.add(fiveButton);

    sixButton.setPreferredSize(new Dimension(bHeight, bWidth));
    sixButton.setBackground(Color.DARK_GRAY);
    sixButton.setForeground(Color.GREEN);
    sixButton.setFont(f);
    sixButton.addActionListener(this);
    frame.add(sixButton);

    minusButton.setPreferredSize(new Dimension(bHeight, bWidth));
    minusButton.setBackground(Color.DARK_GRAY);
    minusButton.setForeground(Color.GREEN);
    minusButton.setFont(f);
    minusButton.addActionListener(this);
    frame.add(minusButton);

    sevenButton.setPreferredSize(new Dimension(bHeight, bWidth));
    sevenButton.setBackground(Color.DARK_GRAY);
    sevenButton.setForeground(Color.GREEN);
    sevenButton.setFont(f);
    sevenButton.addActionListener(this);
    frame.add(sevenButton);

    eightButton.setPreferredSize(new Dimension(bHeight, bWidth));
    eightButton.setBackground(Color.DARK_GRAY);
    eightButton.setForeground(Color.GREEN);
    eightButton.setFont(f);
    eightButton.addActionListener(this);
    frame.add(eightButton);

    nineButton.setPreferredSize(new Dimension(bHeight,bWidth));
    nineButton.setBackground(Color.DARK_GRAY);
    nineButton.setForeground(Color.GREEN);
    nineButton.setFont(f);
    nineButton.addActionListener(this);
    frame.add(nineButton);

    timesButton.setPreferredSize(new Dimension(bHeight, bWidth));
    timesButton.setBackground(Color.DARK_GRAY);
    timesButton.setForeground(Color.GREEN);
    timesButton.setFont(f);
    timesButton.addActionListener(this);
    frame.add(timesButton);


    zeroButton.setPreferredSize(new Dimension(bHeight, bWidth));
    zeroButton.setBackground(Color.DARK_GRAY);
    zeroButton.setForeground(Color.GREEN);
    zeroButton.setFont(f);
    zeroButton.addActionListener(this);
    frame.add(zeroButton);


    enterButton.setPreferredSize(new Dimension(190, bWidth));
    enterButton.setBackground(Color.DARK_GRAY);
    enterButton.setForeground(Color.GREEN);
    enterButton.setFont(f);
    enterButton.addActionListener(this);
    frame.add(enterButton);

    dividButton.setPreferredSize(new Dimension(bHeight, bWidth));
    dividButton.setBackground(Color.DARK_GRAY);
    dividButton.setForeground(Color.GREEN);
    dividButton.setFont(f);
    dividButton.addActionListener(this);
    frame.add(dividButton);

    frame.setComponentOrientation(
            ComponentOrientation.LEFT_TO_RIGHT);


}


private static Dimension Dimension(int bHeight, int bWidth) {
    // TODO Auto-generated method stub
    return null;
}



private static void setLayout(FlowLayout fl) {
    // TODO Auto-generated method stub

}





public static void main(String[] args){

    new Ken();

}




@Override
public void actionPerformed(ActionEvent e) {
    if(e.getSource().equals(oneButton)){
        input1 = 1;
        text.setText(""+input);}
    else if (e.getSource().equals(twoButton)){
        input2 = 2;
        text.setText(""+input);}
    else if(e.getSource().equals(threeButton)){
        input3 = 3;
        text.setText(""+input);}
    else if(e.getSource().equals(fourButton)){
        input4 = 4;
        text.setText(""+input);}
    else if(e.getSource().equals(fiveButton)){
        input5 = 5;
        text.setText(""+input);}
    else if(e.getSource().equals(sixButton)){
        input6 = 6;
        text.setText(""+input);}
    else if(e.getSource().equals(sevenButton)){
        input7 = 7;
        text.setText(""+input);}
    else if(e.getSource().equals(eightButton)){
        input8 = 8;
        text.setText(""+input);}
    else if(e.getSource().equals(nineButton)){
        input9 = 9;
        text.setText(""+input);}
    else if(e.getSource().equals(zeroButton)){
        input0 = 0;
        text.setText(""+input);}

}


}
使用

而不是

text.setText(""+input);

因为您正在重写文本字段中存在的所有字符。

我不确定您的意思,但请朝这个方向思考:使用您自己的按钮实现扩展
JButton
,该按钮将知道其索引:

private class MyButton extends JButton {

     private String index;

     public MyButton(String index) {
         this.index = index;
     }

     public String getIndex() {
         return index;
     }
}
稍后,您可以为您的
actionperfmed()
执行此操作,而无需堆积数千个ifs:


我正要向您展示如何将ActionListener中的20行代码替换为2行代码,但由于您仍然拥有所有使用
setPreferredSize()
的代码,我发现您没有听取过去的建议,所以这次我不想再提建议了。另外,所有变量仍然是静态的,我知道其他人建议您不要这样做。那么,当你不听别人的建议时,为什么还要发问呢?
private class MyButton extends JButton {

     private String index;

     public MyButton(String index) {
         this.index = index;
     }

     public String getIndex() {
         return index;
     }
}
public void actionPerformed(ActionEvent e) {
    if (e.getSource() instanceof MyButton) {
        text.setText(((MyButton)e.getSource()).getIndex());
    }
}