Gần đây tôi đã thực hiện một bài tập lập trình yêu cầu chúng tôi thực hiện trong mã một chương trình được chỉ định bởi biểu đồ UML. Tại một thời điểm, sơ đồ quy định rằng tôi đã phải tạo một JButton ẩn danh hiển thị một số (bắt đầu từ một) và giảm đi mỗi khi nó được nhấp. JButton và ActionListener của nó đều phải ẩn danh.Lớp ẩn danh Java triển khai ActionListener?
tôi đã đưa ra các giải pháp sau đây:
public static void main(String[] args) {
JFrame f = new JFrame("frame");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(400, 400);
f.getContentPane().add(new JButton() {
public int counter;
{
this.counter = 1;
this.setBackground(Color.ORANGE);
this.setText(this.counter + "");
this.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
counter --;
setText(counter + "");
}
});
}
});
f.setVisible(true);
}
này thêm vô danh JButton, sau đó thêm khác (bên trong) ActionListener nặc danh để xử lý các sự kiện và cập nhật nội dung của nút khi cần thiết. Có giải pháp nào tốt hơn không? Tôi khá chắc chắn tôi không thể tuyên bố một ẩn danh JButton implements ActionListener()
, nhưng là có một cách thanh lịch hơn để đạt được cùng một kết quả?
Look nơi bạn đang @ Tim – Insane