2013-06-24 30 views
0

我有一个操作执行10如果和如果else语句和在我的JTextField inly显示如何让他们堆栈使数字与多个数字。我希望我的整数堆栈在我的JTextField

我不需要任何人阅读所有的代码。我只想从actionPerformed的整数堆栈。

我正在制作一个基本的gui计算器。

@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);} 

} 


} 
+0

我正要告诉你如何可以用两行代码替换20行代码在你的ActionListener,但因为你仍然有这一切代码th在使用'setPreferredSize()'我看你没有听过去的建议,所以这次我不打算提出建议。另外,你所有的变量都是静态的,我知道其他人建议你不要这样做。那么,为什么当你不听所给的建议时,你甚至懒得提问? – camickr

回答

2

使用

text.setText(text.getText()+input); 

,而不是

text.setText(""+input); 

因为你重写所有的存在于字符文本域。

0

我不知道你的意思,但觉得在这个方向:用你自己的实现按钮的延长JButton将知道其索引:

private class MyButton extends JButton { 

    private String index; 

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

    public String getIndex() { 
     return index; 
    } 
} 

之后,你可以做到这一点的你actionPerfmormed(),也不需要堆放上千IFS

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