2011-03-21 35 views
0

教師が私に与えた電卓プログラムを修正しようとしています。メインプログラムとGUIプログラムで構成されているはずです。私の唯一の問題は、イベントを処理する方法です。ご覧のとおり、 私はメインプログラムとは別にNumericsクラスを作成しました。私がしたいのは、数値をクリックすると、数値プログラムからメインプログラムのNorthPanelクラスのテキストフィールドに値をスローするはずです。しかし、私はどのように知りません。誰も私にこれを行う方法のアイデアを与えることができますか?Java GUI:電卓プログラムを変更する

はここで、メインプログラム

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... 
     } 
    } 
+0

1 SSCCE(http://pscode.org/sscce.html)は、2つのコードスニペットよりも効果的です。 ;) –

答えて