我开始用Java进行冒险。我决定学习关于挥杆的事情。但是我对ActionListner(最后一个方法)有疑问。我决定,如果用户点击" +"在JLabel tekst1上显示第一个数字,当用户点击" Oblicz"在JLabel tektst2中显示了secend数字,但它没有工作。点击" +" numer正在添加到JLabel tekst1。 我的方法:ActionListnerB1,ActionListnerB2用于tekst1 ActionListnerB11,ActionListnerB12用于tekst2。 我还有另一个问题,当我打开程序时,我看不到某些按钮和JTextField,我的窗口增加然后减少
我的代码:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class Kalku extends JFrame implements ActionListener
{
JButton jeden,dwa,dodaj,oblicz;
JTextField pasek;
JLabel tekst1,tekst2;
String licz1,licz2;
public Kalku()
{
super("Kalkulator");
this.setSize(500, 500);
setLayout(null);
setVisible(true);
licz1="";
licz2="";
jeden = new JButton("1");
jeden.setBounds(20, 400, 80, 20);
add(jeden);
dwa=new JButton("2");
dwa.setBounds(100, 400, 80, 20);
add(dwa);
oblicz = new JButton("Oblicz");
oblicz.setBounds(350, 360, 100, 40);
add(oblicz);
pasek = new JTextField();
pasek.setBounds(100,120,200,30);
add(pasek);
pasek.setVisible(true);
tekst1=new JLabel("Liczba1");
tekst1.setBounds(400,120,50,50);
add(tekst1);
tekst2=new JLabel("Liczba 2");
tekst2.setBounds(450,120,50,50);
add(tekst2);
dodaj=new JButton("+");
dodaj.setBounds(20,250,80,20);
add(dodaj);
jeden.addActionListener(this);
dwa.addActionListener(this);
oblicz.addActionListener(this);
dodaj.addActionListener(this);
}
public static void main(String[] args)
{
Kalku k1= new Kalku();
}
public void ActionListnerB1(ActionEvent event)
{
if(event.getSource()==jeden)
{
licz1=licz1+"1";
}
}
public void ActionListnerB2(ActionEvent event)
{
if(event.getSource()==dwa)
{
licz1=licz1+"2";
}
}
public void ActionListnerB12(ActionEvent event)
{
if(event.getSource()==jeden)
{
licz2=licz2+"1";
}
}
public void ActionListnerB22(ActionEvent event)
{
if(event.getSource()==dwa)
{
licz2=licz2+"2";
}
}
public void WynikDod(String l1, String l2)
{
int li1=Integer.parseInt(licz1);
int li2=Integer.parseInt(l2);
int wyn=li1+li2;
pasek.setText(Integer.toString(wyn));
}
@Override
public void actionPerformed(ActionEvent event)
{
if(event.getSource()==oblicz)
{
tekst2.setText(licz2);
pasek.setText("pusto");
//Method WynikDod(() and show in pasek result
}
if(event.getSource()==dodaj)
{
ActionListnerB12(event);
ActionListnerB22(event);
tekst2.setText(licz2);
}
if(event.getSource()!=dodaj & event.getSource()!=oblicz)
{
ActionListnerB1(event);
ActionListnerB2(event);
tekst1.setText(licz1);
}
}
}