Java ActionListner无法正常工作

时间:2017-08-01 19:08:05

标签: java

我开始用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);
        }   
    }
}

0 个答案:

没有答案