下面贴出两段代码 前面的没问题 后面的不行
希望能得到知道
本人是刚学 谢谢
package jre;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TextDemo extends JFrame {
JPanel panel;
JButton button;
JTextField label;
public TextDemo(){
super("测试事件响应");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
getContentPane().add(panel);
JButton button = new JButton("点击鼠标");
final JTextField label = new JTextField("注意观察");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
label.setText("鼠标被点击");
}
});
panel.add(button);
panel.add(label);
setSize(300,200);
setVisible(true);
}
public static void main(String[] args){
new TextDemo();
}
} 这段代码中button响应了import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TextDemo extends JFrame implements ActionListener{
JPanel panel;
JButton button;
JTextField label;
public TextDemo(){
super("测试事件响应");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
getContentPane().add(panel);
JButton button = new JButton("点击鼠标");
JTextField label = new JTextField("注意观察");
button.addActionListener(this);
panel.add(button);
panel.add(label);
setSize(300,200);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == button)
label.setText("鼠标被点击");
}
public static void main(String[] args){
new TextDemo();
}
} 这段代码就不行了再换个方法import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TextDemo extends JFrame {
JPanel panel;
JButton button;
JTextField label;
public TextDemo(){
super("测试事件响应");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
getContentPane().add(panel);
JButton button = new JButton("点击鼠标");
JTextField label = new JTextField("注意观察");
button.addActionListener(new ButtonAction());
panel.add(button);
panel.add(label);
setSize(300,200);
setVisible(true);
}
class ButtonAction implements ActionListener{
ButtonAction(){
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == button)
label.setText("鼠标被点击");
}
}
public static void main(String[] args){
new TextDemo();
}
} 还是不行 ~~
能详细解释下吗 ?
多谢!!!
希望能得到知道
本人是刚学 谢谢
package jre;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TextDemo extends JFrame {
JPanel panel;
JButton button;
JTextField label;
public TextDemo(){
super("测试事件响应");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
getContentPane().add(panel);
JButton button = new JButton("点击鼠标");
final JTextField label = new JTextField("注意观察");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
label.setText("鼠标被点击");
}
});
panel.add(button);
panel.add(label);
setSize(300,200);
setVisible(true);
}
public static void main(String[] args){
new TextDemo();
}
} 这段代码中button响应了import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TextDemo extends JFrame implements ActionListener{
JPanel panel;
JButton button;
JTextField label;
public TextDemo(){
super("测试事件响应");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
getContentPane().add(panel);
JButton button = new JButton("点击鼠标");
JTextField label = new JTextField("注意观察");
button.addActionListener(this);
panel.add(button);
panel.add(label);
setSize(300,200);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == button)
label.setText("鼠标被点击");
}
public static void main(String[] args){
new TextDemo();
}
} 这段代码就不行了再换个方法import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TextDemo extends JFrame {
JPanel panel;
JButton button;
JTextField label;
public TextDemo(){
super("测试事件响应");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
getContentPane().add(panel);
JButton button = new JButton("点击鼠标");
JTextField label = new JTextField("注意观察");
button.addActionListener(new ButtonAction());
panel.add(button);
panel.add(label);
setSize(300,200);
setVisible(true);
}
class ButtonAction implements ActionListener{
ButtonAction(){
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == button)
label.setText("鼠标被点击");
}
}
public static void main(String[] args){
new TextDemo();
}
} 还是不行 ~~
能详细解释下吗 ?
多谢!!!
panel.add(button);
panel.add(label);
setSize(300,200);
setVisible(true);
}
class ButtonAction implements ActionListener{
ButtonAction(){
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == button)
label.setText("鼠标被点击");
}
}你在button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(e.getSource() == button)
label.setText("鼠标被点击");
}
})直接用内部类 不要自己写一个类, 你new ButtonAction() 这个构造里什么操作都没有自然是没有反应
if (e.getSource() == button)这个判断出问题了吧。另:label貌似没有初始化。
import java.awt.event.*;
import javax.swing.*;public class TextDemo extends JFrame implements ActionListener {
JPanel panel; JButton button; JTextField label = new JTextField("注意观察"); public TextDemo() {
super("测试事件响应");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
getContentPane().add(panel);
JButton button = new JButton("点击鼠标");
button.addActionListener(this);
panel.add(button);
panel.add(label);
setSize(300, 200);
setVisible(true);
} public void actionPerformed(ActionEvent e) {
label.setText("鼠标被点击");
} public static void main(String[] args) {
new TextDemo();
}
}
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;public class TextDemo extends JFrame implements ActionListener {
JPanel panel;
JButton button;
JTextField label; public TextDemo() {
super("测试事件响应");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
getContentPane().add(panel);
button = new JButton("点击鼠标");
label = new JTextField("注意观察");
button.addActionListener(this);
panel.add(button);
panel.add(label);
setSize(300, 200);
setVisible(true);
} public void actionPerformed(ActionEvent e) {
if (e.getSource() == button)
label.setText("鼠标被点击");
} public static void main(String[] args) {
new TextDemo();
}
}注意你的构造方法中的变量定义,如果写成这样:
JButton button = new JButton("点击鼠标");
则定义了一个局部变量。
如果写成这样:
button = new JButton("点击鼠标");
则是在为全局变量赋值。