自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 收藏
  • 关注

原创 使用GridLayout布局

private JButton button1 = new JButton("按键 1");private JButton button2 = new JButton("按键 2");private JButton button3 = new JButton("按键 3");private JButton button4 = new JButton("按键 4");//设置布局方式为 GridLayout,2行、2列。//添加组件时不需要设置组件所在行、列。

2025-12-29 20:14:47 46

原创 复杂界面布局

JButton button1 = new JButton("按键1");JButton button2 = new JButton("按键2");JButton button3 = new JButton("按键3");JButton button4 = new JButton("按键4");JButton button1 = new JButton("按键1");JButton button2 = new JButton("按键2");JButton button=new JButton("按键");

2025-12-29 20:14:34 146

原创 一个简单的案件处理程序

JButton button = new JButton("点我!clickedButton.setText("我被点了!// 匿名内部类实现按钮点击事件。// 获取触发事件的按钮。

2025-12-28 17:37:38 53

原创 键盘事件处理程序

label.setText("按下了按键:" + event.getKeyChar());JLabel label = new JLabel("按下了按键:");label.setText("按下了按键:RIGHT");label.setText("按下了按键:DOWN");label.setText("按下了按键:LEFT");label.setText("按下了按键:UP");

2025-12-28 17:37:32 104

原创 鼠标事件处理程序

label.setText("鼠标在" + event.getX() + "," + event.getY() + "进行了点击");label.setText("鼠标移动到了" + event.getX() + "," + event.getY());// 监听鼠标点击事件。// 监听鼠标移动事件。

2025-12-28 17:37:25 127

原创 用鼠标绘图

/ 窗口大小改变事件:适配缓冲区大小并保留原有绘图。// 重写paint方法:将缓冲区内容绘制到窗口。// 记录上一次鼠标的x、y位置。// 鼠标移动事件:绘制连续红线。// 记录绘图内容的缓冲区。// 初始化首次鼠标位置。// 在缓冲区绘制红线。

2025-12-28 17:37:17 270

原创 建立一棵默认的树

DefaultMutableTreeNode subChild = new DefaultMutableTreeNode("子节点1-1");// 增加关闭窗口的退出功能。DefaultMutableTreeNode child1 = new DefaultMutableTreeNode("子节点1");DefaultMutableTreeNode child2 = new DefaultMutableTreeNode("子节点2");// 创建JTree并关联节点。// 创建根节点和子节点。

2025-12-28 17:37:09 251

原创 使用HashTable构造树

/ 将树形组件放入滚动面板的视口。// 将滚动面板添加到窗口。hashtable.put("大写字母", s1);hashtable.put("小写字母", s2);// 滚动面板相关代码。

2025-12-27 12:56:52 201

原创 创建周期性线程

System.out.println(Thread.currentThread().getName()+":开花");System.out.println(Thread.currentThread().getName()+":结果");//300ms后开始执行,每200ms执行一次。//400ms后执行,每500ms执行一次。//终止定时器,丢弃所有正在执行的任务。//主线程休息1000ms。

2025-12-27 12:56:45 185

原创 使用固定线程池创建线程·,然后让它们执行特定的任务

System.out.println(Thread.currentThread().getName()+"执行:"+this.targetName+"结果:"+sum);System.out.println(Thread.currentThread().getName()+"执行:"+this.targetName);//把Callable任务提交到线程池,返回Future对象,泛型表示线程体的返回值类型。//创建10个线程任务,并提交到线程池。//得到线程体的计算结果。//把任务提交到线程池。

2025-12-27 12:56:39 298

原创 中断线程的执行

System.out.println((end-start)/1000000+"毫秒后:"+result);System.out.println(this.getName()+"开始计算...");System.out.println(this.getName()+"被中断,结束");System.out.println(this.getName()+"结束结算");System.out.println("主线程执行");//等待线程t执行2000ms。//中断线程t的执行。

2025-12-27 12:56:29 294

原创 周期性的调用检测中断的方法结束线程

System.out.println((end-start)/1000000+"毫秒后:"+result);System.out.println(this.getName()+"被中断,即将结束");System.out.println(this.getName()+"开始计算...");System.out.println(this.getName()+"结束计算");System.out.println("主线程执行");

2025-12-27 12:56:10 161

原创 错误的银行账号对象

System.out.println("最终账号余额是:"+account.balance);System.out.println("取款1000成功。System.out.println("取款失败");//主线程等待3个线程结束后,输出最后余额。//下面执行取款操作。//创建3个取款线程。

2025-12-22 14:53:24 201

原创 正确的银行账号对象

System.out.println("最终账号余额是:"+account.balance);System.out.println("取款1000成功。System.out.println("取款失败。//同步方法,执行该方法时,必须获得所在对象的互斥锁。//主线程等待3个线程结束后,输出最后余额。//创建3个取款类型。//下面执行取款操作。

2025-12-22 14:53:12 144

原创 多线程同步操作银行账号

System.out.printf("取款%1$,.2f失败。余额:%2$,.2f\n",money,balance);System.out.printf("取款%1$,.2f失败。余额:%2$,.2f\n",money,balance);System.out.printf("取款%1$,.2f成功。余额:%2$,.2f\n",money,balance);System.out.printf("取款%1$,.2f失败。//唤醒等待队列的线程。

2025-12-22 14:53:05 284

原创 用显式锁实现多线程取款操作

System.out.println("最终账号余额是:"+account.balance);System.out.println("取款1000成功。System.out.println("取款失败。//主线程等待3个线程结束后,输出最后余额。//创建3个取款线程。

2025-12-22 14:52:33 258

原创 用冒泡法、双向冒泡法和快速排序法来实现对一个整型数组的排序

Thread bbsort = new Thread(new BBSort(data3, "双向冒泡排序"));Thread qsort = new Thread(new QSort(data, "快速排序"));+"执行时间:"+(end-start)+"ns");//复制需要排序的数组,为下一个排序算法准备数据。//复制需要排序的数组,为下一个排序算法准备数据。//具体的排序子类覆盖此方法,实现排序算法。//创建双向冒泡排序线程。//随机产生排序的数据。//创建快速排序线程。//创建冒泡排序线程。

2025-12-22 14:52:24 346

原创 线程的优先级

package _6;t1.start();t2.start();t3.start();i<5;i++)");

2025-12-20 14:16:47 179

原创 使用接口创建线程

System.out.println("线程"+number+":计数"+count);System.out.println("创建线程"+number);//通过Thread类创建线程对象,并启动。

2025-12-20 14:14:27 185

原创 使用继承创建线程

/主线程中打印count+"main"变量的值,并换行。//调用超类Thread的构造函数,传入线程名字。//count变量用于统计打印的次数并共享数量。//主线程main方法执行一个循环。//线程类必须有的run()方法。//main方法开始。//创建一个线程实例。

2025-12-20 14:13:56 173

原创 使用两个线程分别执行数的求和,求平方和运算

System.out.println("平方和:"+sum);System.out.println("和:"+sum);//继承Thread创造线程。//继承Thread创建线程。

2025-12-20 14:13:26 111

原创 UserRegistrationForm注册表单

/关闭窗口时退出程序。//GridLayout(6,2,10,10):网格布局,6行2列,组件之间水平间距10像素,垂直间距10像素。if(sportCheck.isSelected())hobbies.append("运动");if(readCheck.isSelected())hobbies.append("音乐");System.out.println("爱好:"+hobbies.toString());if(hobbies.length()==0)hobbies.append("无");

2025-11-24 14:34:15 584

原创 使用DefaultMutableTreeNode构造Tree

DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("大写字母");DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("小写字母");DefaultMutableTreeNode root = new DefaultMutableTreeNode("字母表");// 为大写/小写字母节点添加子节点。// 创建树形组件并放入滚动面板。// 构建树形节点结构。

2025-11-23 13:39:01 158

原创 使用二维数组构造JTable

/ 创建JTable并关联数据和表头。// 放入滚动面板(支持表格滚动)// 定义表格数据(二维数组)

2025-11-23 13:38:52 267

原创 使用AbstractTableModel构造JTable

/ 自定义表格模型(继承AbstractTableModel)// 获取列的类型(用于自动渲染组件,如布尔值显示为复选框)// 获取指定单元格的值。

2025-11-23 13:38:44 220

原创 使用DefaultModel实现动态表格

JButton button1 = new JButton("增加行");JButton button2 = new JButton("增加列");JButton button3 = new JButton("删除行");JButton button4 = new JButton("删除列");if (cmd.equals("增加列")) {if (cmd.equals("增加行")) {if (cmd.equals("删除列")) {if (cmd.equals("删除行")) {// 绑定事件监听器。

2025-11-23 13:38:33 361

原创 可视化的简单计算器

if (fh.equals("")) { // 未输入运算符,拼接第一个数。if (x.startsWith("00")) { // 处理前导零。if (fh.equals("")) { // 切换第一个数的正负。if (fh.equals("")) { // 第一个数加小数点。// 三角函数/对数按钮(sin、cos、tan、ln)} else { // 切换第二个数的正负。// 运算符按钮(+、-、*、/、^)// 中间按钮面板:5x5网格布局。// 正负切换按钮(+/-)// 平方根按钮(sqrt)

2025-11-23 13:38:11 494

原创 使用BorderLayout布局

private JButton center = new JButton("中");private JButton north = new JButton("北");private JButton south = new JButton("南");private JButton east = new JButton("东");private JButton west = new JButton("西");//组件进行设置的方法,如 setSize、setLocation 等都会失效。

2025-11-22 10:33:22 275

原创 使用FlowLayout布局

/添加按键,注意设置布局方式后任何对组件进行设置的方法都会失效。//设置布局方式为 FlowLayout。

2025-11-22 10:32:52 151

原创 无布局管理器布局

private JTextField textField=new JTextField("文本框");private JButton button=new JButton("按键");//设置输入框的位置为(20,20),宽200,高100。//设置按键的位置为(300,50),宽100,高20。//设置布局管理为null。

2025-11-22 10:32:19 159

原创 使用AWT的GUI程序

JOptionPane.showMessageDialog(null,"点击了按键");private Button button=new Button("按键");

2025-11-22 10:31:47 258

原创 使用Swing JButton的GUI程序

JOptionPane.showMessageDialog(null,"点击了按键");private JButton button=new JButton("按键");

2025-11-22 10:31:14 142

原创 用Consumer接口和Lambda表达式反转字符串并输出

cs("重庆大学", (name) -> {

2025-11-09 18:56:28 100

原创 Lambda表达式实现函数式接口演示

show(() -> System.out.println("方法实现 one"));System.out.println("方法实现 two");

2025-11-03 07:01:03 110

原创 通过匿名部类实现接口并调用其方法

");e.print1();

2025-11-03 07:00:56 140

原创 定义包含成员内部类的外部类

package _5_15; public class Outer1 {private int k = 20; public static void f1() {} public class Inner1 {public void f() {System.out.println("In inner Class");}}}

2025-11-03 07:00:23 88

原创 通过接口实现司机驾驶不同汽车并展示运行情况

System.out.println("宝马车正在运行...");System.out.println("奔驰车正在运行...");

2025-11-03 07:00:17 205

原创 在方法中定义局部内部类

package _5_16; class Outer2 {public void doSomething() {class Inner2 {public void seeOuter() {}}}}

2025-11-03 06:59:35 81

原创 按钮点击事件的窗口程序

add(panel);});

2025-11-03 06:59:28 128

原创 方法重写与成员变量覆盖演示

sp.show();sb.show();int a=10;int c=a*b;

2025-11-03 06:59:13 162

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除