package Ch08;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//定義WindowListener事件
class MyWindowListener extends WindowAdapter{
//窗體關閉過程中觸發函數
public void windowClosing(WindowEvent e){
new MyJDialog().setVisible(true);
System.exit(0);;
}
}
//定義關閉窗體時需要彈出的對話框
class MyJDialog extends JDialog{
public MyJDialog(){
super(new JFrame(),"提示:",true);
Container c=getContentPane();
JLabel label=new JLabel("你以爲關閉就能迴避這個話題嗎?");
label.setHorizontalAlignment(SwingConstants.CENTER);
JButton btnY=new JButton("是");
JButton btnN=new JButton("不是");
//添加按鈕監聽事件
btnN.addMouseListener(new MouseListener(){
//鼠標點擊、移上、移出、鬆開事件
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
btnN.setText("是");
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
btnN.setText("不是");
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
});
//添加按鈕監聽事件
btnN.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
label.setText("喜歡就直接說嘛。");
}
});
btnY.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
label.setText("喜歡就直接說嘛。");
}
});
btnY.setBounds(30, 100, 80, 30);
btnN.setBounds(158, 100, 80, 30);
c.add(btnY);
c.add(btnN);
c.add(label);
setSize(300, 200);
}
}
//主窗體
public class Test extends JFrame{
public void creatJFrame(String title){
JFrame jf=new JFrame(title);
Container container=jf.getContentPane();
JLabel label=new JLabel("你是不是喜歡我?");
//設置標籤文字居中
label.setHorizontalAlignment(SwingConstants.CENTER);
JButton btnY=new JButton("是");
JButton btnN=new JButton("不是");
//添加按鈕監聽事件
btnN.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
label.setText("喜歡就直接說嘛。");
}
});
btnY.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
label.setText("喜歡就直接說嘛。");
}
});
btnN.addMouseListener(new MouseListener(){
//鼠標點擊、移上、移出、鬆開事件
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
btnN.setText("是");
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
btnN.setText("不是");
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
});
btnY.setBounds(30, 100, 80, 30);
btnN.setBounds(158, 100, 80, 30);
container.add(btnY);
container.add(btnN);
container.add(label);
jf.setSize(300, 200);
jf.setVisible(true);
jf.setDefaultCloseOperation(EXIT_ON_CLOSE);
jf.addWindowListener(new MyWindowListener());
}
public static void main(String[] args) {
new Test().creatJFrame("回答我:");
}
}
運行結果:
當鼠標放在不是按鈕上時:當對方不想選擇想關閉窗體時:
當對方無奈選擇一個按鈕時: