java:表白,挑逗窗体程序

本文介绍了一个使用Java Swing实现的简单应用程序。该程序包含一个主窗体,询问用户是否喜欢提问者,并在用户尝试关闭窗体时显示一个对话框。对话框会进一步询问用户是否确认关闭,并展示有趣的互动文本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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("回答我:");
	}

}



运行结果:

当鼠标放在不是按钮上时:当对方不想选择想关闭窗体时:
当对方无奈选择一个按钮时:
03-05 17:45:49.133 05864 05796 W NetworkScheduler: Error inserting flex_time=3536000 job_id=-1 period=7073000 source=16 requires_charging=0 preferred_network_type=1 target_class=com.google.android.gms.measurement.PackageMeasurementTaskService user_id=0 target_package=com.google.android.gms tag=Measurement.PackageMeasurementTaskService.UPLOAD_TASK_TAG task_type=0 required_idleness_state=0 service_kind=0 source_version=250832000 persistence_level=1 preferred_charging_state=1 required_network_type=0 runtime=1741176949126 retry_strategy={"maximum_backoff_seconds":{"3600":0},"initial_backoff_seconds":{"30":0},"retry_policy":{"0":0}} last_runtime=0 [CONTEXT service_id=218 ] android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: pending_ops.tag, pending_ops.target_class, pending_ops.target_package, pending_ops.user_id (code 2067 SQLITE_CONSTRAINT_UNIQUE) at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method) at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:988) at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:814) at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:89) at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1981) at android.database.sqlite.SQLiteDatabase.insertOrThrow(SQLiteDatabase.java:1875) at dreu.d(:com.google.android.gms@250832035@25.08.32 (260400-731361394):727) at drcl.n(:com.google.android.gms@250832035@25.08.32 (260400-731361394):29) at drcl.u(:com.google.android.gms@250832035@25.08.32 (260400-731361394):364) at drcl.h(:com.google.android.gms@250832035@25.08.32 (260400-731361394):51) at dqxa.run(:com.google.android.gms@250832035@25.08.32 (260400-731361394):72) at atim.c(:com.google.android.gms@250832035@25.08.32 (260400-731361394):50) at atim.run(:com.google.android.gms@250832035@25.08.32 (260400-731361394):76) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644) at atnz.run(:com.google.android.gms@250832035@25.08.32 (260400-731361394):8) at java.lang.Thread.run(Thread.java:1012)什么意思
03-14
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值