java swing小程序的问题
我编了个小程序,代码如下:importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;classButtonD...
我编了个小程序,代码如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class ButtonDemo implements ActionListener{
JLabel jlab;
ButtonDemo(){
JFrame jfrm = new JFrame("牛叉的按钮实例");
jfrm.setLayout(new FlowLayout());
jfrm.setSize(100,90);
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton jbtnUp = new JButton("向上");
JButton jbtnDown = new JButton("向下");
jbtnUp.addActionListener(this);
jbtnDown.addActionListener(this);
jfrm.add(jbtnUp);
jfrm.add(jbtnDown);
jlab = new JLabel("按下按钮吧~");
jfrm.add(jlab);
jfrm.setVisible(true);
}
public void actionperformed(ActionEvent ae){
if(ae.getActionCommand().equals("Up"))
jlab.setText("你正在上升~");
else
jlab.setText("你正在下降~");
}
public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable() {
public void run(){
new ButtonDemo();
}
});
}
}
但是按钮相应事件出问题了.....求改正方法 展开
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class ButtonDemo implements ActionListener{
JLabel jlab;
ButtonDemo(){
JFrame jfrm = new JFrame("牛叉的按钮实例");
jfrm.setLayout(new FlowLayout());
jfrm.setSize(100,90);
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton jbtnUp = new JButton("向上");
JButton jbtnDown = new JButton("向下");
jbtnUp.addActionListener(this);
jbtnDown.addActionListener(this);
jfrm.add(jbtnUp);
jfrm.add(jbtnDown);
jlab = new JLabel("按下按钮吧~");
jfrm.add(jlab);
jfrm.setVisible(true);
}
public void actionperformed(ActionEvent ae){
if(ae.getActionCommand().equals("Up"))
jlab.setText("你正在上升~");
else
jlab.setText("你正在下降~");
}
public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable() {
public void run(){
new ButtonDemo();
}
});
}
}
但是按钮相应事件出问题了.....求改正方法 展开
展开全部
lz 你太粗心了
看注释吧:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ButtonDemo implements ActionListener{
JLabel jlab;
JButton jbtnUp;
//actionPerformed()方法中要使用这个变量 所以最好是设为类成员
JButton jbtnDown;
public ButtonDemo(){
JFrame jfrm = new JFrame("牛叉的按钮实例");
jfrm.setLayout(new FlowLayout());
jfrm.setSize(100,150);
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jbtnUp = new JButton("向上");
jbtnDown = new JButton("向下");
jbtnUp.addActionListener(this);
jbtnDown.addActionListener(this);
jfrm.add(jbtnUp);
jfrm.add(jbtnDown);
jlab = new JLabel("按下按钮吧~");
jfrm.add(jlab);
jfrm.setVisible(true);
}
public void actionPerformed(ActionEvent ae){//actionPerformed 的p应该大写
if(ae.getSource() == jbtnUp)//如果按下jbtnUp按钮 就显示上升
jlab.setText("你正在上升~");
else
jlab.setText("你正在下降~");
}
public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable() {
public void run(){
new ButtonDemo();
}
});
}
}
希望能帮助你哈
展开全部
//actionPerformed不是actionperformed
public void actionPerformed(ActionEvent ae){
//getActionCommand()是与按键内的文字相等,你写的是向上不是up
if(ae.getActionCommand().equals("向上"))
jlab.setText("你正在上升~");
else
jlab.setText("你正在下降~");
}
public void actionPerformed(ActionEvent ae){
//getSource()是表示获取的对象,所以与jbtnUp比较
if(ae.getSource() == jbtnUp)
jlab.setText("你正在上升~");
else
jlab.setText("你正在下降~");
}
2种方法都可以,不过第二种要与对象比较,所以jbtnUp必须是类的成员,让它在任何地方都可以获取到
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询