0

我正在尝试修改老师给我的计算器程序。它应该由主程序和GUI程序组成。我唯一的问题是如何处理事件。如您所见,我在主程序之外创建了 Numerics 类。我想要发生的是,当我单击一个数字时,它应该将数值程序中的值扔到主程序中 NorthPanel 类的文本字段中。但我不知道怎么做。谁能给我关于如何做到这一点的任何想法?

这是主程序的一部分

public class NorthPanel extends JPanel {
    private JTextField display;
    private JLabel filler;

    public NorthPanel() {
    //receive the thrown value from Numerics program to be displayed
        setLayout(new BorderLayout());
        String calcTF="0.";
        display = new JTextField(calcTF);
        display.setEditable(false);
        display.setFont(new Font("Century Gothic",Font.BOLD,19));
        display.setHorizontalAlignment(JTextField.RIGHT);                                   
        add(display,BorderLayout.CENTER);                   
    }
}

public class CenterPanel extends JPanel {

    private Numerics numeric;
    private Operations operator;
    private Functions function;

    public CenterPanel() {
        setLayout(null);

        numeric = new Numerics();
        numeric.setBounds(5,5,150,150);

        operator = new Operations();
        operator.setBounds(158,5,45,150);

        function = new Functions();
        function.setBounds(204,5,55,150);

        add(numeric);               
        add(operator);
        add(function,0);
    }
}

这是数字程序的一部分

public class Numerics extends JPanel implements ActionListener
{
    private JButton c7;
    String value="";
    public Numerics() 
    {
        UIManager.put("Button.background", Color.gray);
        setLayout(new GridBagLayout());

        GridBagConstraints gbc=new GridBagConstraints();
        gbc.weightx = 1.0;
        gbc.weighty = 1.0;
        gbc.fill = GridBagConstraints.BOTH;
        gbc.insets = new Insets(0,3,5,3);

        c7=new JButton("7");
        c7.setFont(new Font("Arial",Font.BOLD,20));
        c7.setBorder(BorderFactory.createRaisedBevelBorder());
        gbc.gridx=0;
        gbc.gridy=0;
        add(c7,gbc);
        c7.addActionListener(this);
public void actionPerformed(ActionEvent ae1)
    {
        if(ae1.getSource()==c7)
        {
            value+="7";
            //throw the value to display in the NorthPanel...
        }
    }
4

1 回答 1

1

查看事件监听器简介,特别是 Java 教程的如何编写动作监听器部分。

于 2011-03-21T04:44:12.393 回答