回 帖 发 新 帖 刷新版面

主题:看看我的程序

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TestActionEvent extends JFrame{
private JButton jbtok=new JButton("ok");
private JButton jbtCancel=new JButton("Cancel");

public TestActionEvent(){
    setTitle("TestActionEvent");
    getContentPane().setLayout(new GridLayout(2,1));
    JPanel p1=new JPanel(new FlowLayout());
    //JPanel p2=new JPanel();
    getContentPane().add(p1);
    
    p1.add(jbtok);
    p1.add(jbtCancel);
    ButtonListener btListener=new ButtonListener();
    
    jbtok.addActionListener(btListener);
    //btListener.ad(p2);
    jbtCancel.addActionListener(btListener);
    getContentPane().add(btListener.p);
}
public static void main(String[] args){
    TestActionEvent frame=new TestActionEvent();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200,160);
frame.setVisible(true);
}
}

class ButtonListener implements ActionListener{
    // JTextField T;
     JPanel p=new JPanel(new FlowLayout());
    public void actionPerformed(ActionEvent e){
        //System.out.println("This is "+e.getActionCommand()+"button");
        p.add(new JTextField("This is "+e.getActionCommand()+"button"),new FlowLayout());
    }
    
}

我要实现  当点击OK按钮时,信息面板上显示“OK button is clicked”,当点击Cancel按钮时,信息面板上显示“Cancel button is clicked”。

回复列表 (共5个回复)

沙发

给一个参考:

        jbtok.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                JOptionPane.showMessageDialog(null, "Ok is clicked","OK",
                        JOptionPane.OK_CANCEL_OPTION);
            }
            
        });
        // btListener.ad(p2);
        jbtCancel.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JOptionPane.showMessageDialog(null, "Cancel is Clicked",
                        "Cancel", JOptionPane.CANCEL_OPTION);
            }
        });

板凳


程序向这么写看的很不舒服,我稍微改了一下,仅供参考
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class TestActionEvent extends JFrame{
private JButton jbtok=new JButton("ok");
private JButton jbtCancel=new JButton("Cancel");
private final JLabel jlabel = new JLabel(); //增加的JLabel控件

public TestActionEvent(){
    setTitle("TestActionEvent");
    getContentPane().setLayout(new GridLayout(2,1));
    JPanel p1=new JPanel(new FlowLayout());
    //JPanel p2=new JPanel();
    getContentPane().add(p1);
    
    p1.add(jbtok);
    p1.add(jbtCancel);
    p1.add(jlabel);//增加
   // ButtonListener btListener=new ButtonListener();
    
    jbtok.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            jlabel.setText("this is "+e.getActionCommand()+" button");
        }//内部类实现
    
    });
    jbtCancel.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            jlabel.setText("this is "+e.getActionCommand()+" button");
        }//内部类实现
    });
  //  getContentPane().add(btListener.p);
}
public static void main(String[] args){
    TestActionEvent frame=new TestActionEvent();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(200,160);
    frame.setVisible(true);
}
}
/*class ButtonListener implements ActionListener{
    // JTextField T;
     JPanel p=new JPanel(new FlowLayout());
    public void actionPerformed(ActionEvent e){
        //System.out.println("This is "+e.getActionCommand()+"button");
        p.add(new JTextField("This is "+e.getActionCommand()+"button"),new FlowLayout());
    }  
}*/

3 楼

我从新写的 你写的太乱了 ,可能和你的思路不一样 。紧供参考
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


public class TestActionEvent extends JFrame implements ActionListener
{
 private JButton jbtok,jbtCancel;
 private JLabel lab;
 public TestActionEvent(){
    super("TestActionEvent");
    jbtok=new JButton("ok");
    jbtCancel=new JButton("Cancel");
    lab=new JLabel();
     this.getContentPane().add(jbtok);
    this.getContentPane().add(jbtCancel);
    jbtok.setBounds(0,50,100,100);
    jbtCancel.setBounds(100,50,100,100);
    lab.setBounds(200, 200, 200, 100);
    this.getContentPane().add(lab);
    jbtok.addActionListener(this);
    jbtCancel.addActionListener(this);
    this.getContentPane().setLayout(null);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setSize(200,160);
    this.setVisible(true);
    }

public static void main(String[] args)
    {
    TestActionEvent ab=new TestActionEvent();

    }
    public void actionPerformed(ActionEvent e)
    {
      if(e.getSource()==jbtok)
      {
          lab.setText("OK button is clicked");
        }
        else
        {           lab.setText("Cancle button is clicked");
        }
}
}

4 楼

信息面板上显示

5 楼


你运行以下  有提示

我来回复

您尚未登录,请登录后再回复。点此登录或注册