Tôi đang đọc một cuốn sách tuyệt vời có tên Swing: Hướng dẫn cho người mới bắt đầu. Có mã này trong cuốn sách mà tạo ra một nút và một nhãn cảnh báo trên các sự kiện thay đổi trạng thái nút của:Phương thức Java isRollover() không tạo ra sự kiện trong ứng dụng xoay của tôi
//Demonstrate a change listener and the button model
package swingexample2_6;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
public class ChangeDemo {
JButton jbtn;
JLabel jlab;
public ChangeDemo() {
//Create a new JFrame container
JFrame jfrm = new JFrame("Button Change Events");
//Specify FlowLayout for the layout manager
jfrm.getContentPane().setLayout(new FlowLayout());
//Give the frame an initial size
jfrm.setSize(250, 160);
//Terminate the program when the user closes the application
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create an empty label
jlab = new JLabel();
//Make a button
jbtn = new JButton("Press for Change Event Test");
//--Add change listener
jbtn.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent ce) {
ButtonModel mod = jbtn.getModel();
String what = "";
if (mod.isEnabled()) {
what += "Enabled<br>";
}
if (mod.isRollover()) {
what += "Rollover<br>";
}
if (mod.isArmed()) {
what += "Armed<br>";
}
if (mod.isPressed()) {
what += "Pressed<br>";
}
//Notice that this label's text is HTML
jlab.setText("<html>Current stats:<br>" + what);
}
});
//Add the components to the content pane
jfrm.getContentPane().add(jbtn);
jfrm.getContentPane().add(jlab);
//Display the frame
jfrm.setVisible(true);
}
public static void main(String[] args) {
//Create the frame on the event dispatching thread
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new ChangeDemo();
}
});
}
}
Tất cả mọi thứ đang làm việc tốt, ngoại trừ cho sự kiện rollover. Hệ điều hành cơ bản là Mac OS Lion. Tôi có nên đổ lỗi cho Lion vì vấn đề này hay tôi đang làm gì sai? Cảm ơn bạn.
Cập nhật 1: My picture neatbeans cài đặt (Tôi hy vọng nó giúp) settings http://i44.tinypic.com/vdzg92.png
hoạt động tốt cho tôi ... Windows 7 OS – mre
@mre Tương tự ở đây (cũng sử dụng Win. 7 với phiên bản 1.6 JRE). Phiên bản JRE được sử dụng là gì? (Câu hỏi cho cả hai mre & poster gốc.) –
jdk được sử dụng là 1.6.0 – skiabox