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