【Java-GUI】10 Swing04
面板容器:
package cn.dzz.swing; import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener; public class Demo07 { JFrame jFrame = new JFrame("案例");
JTabbedPane jTabbedPane = new JTabbedPane(SwingConstants.LEFT, JTabbedPane.SCROLL_TAB_LAYOUT); void init() {
// 组装视图 // 添加标签
jTabbedPane.addTab(
"用户管理",
new ImageIcon("img/icon01.png"),
new JList<String>(new String[]{
"用户一",
"用户二",
"用户三",
}
)
);
jTabbedPane.addTab(
"商品管理",
new JList<String>(new String[]{
"商品一",
"商品二",
"商品三",
}
)
);
jTabbedPane.addTab(
"订单管理",
new ImageIcon("img/icon01.png"),
new JList<String>(new String[]{
"订单一",
"订单二",
"订单三",
}
)
); jTabbedPane.setEnabledAt(0, false);
jTabbedPane.setSelectedIndex(1);
jTabbedPane.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
int selectedIndex = jTabbedPane.getSelectedIndex();
JOptionPane.showMessageDialog(
jFrame,
"当前选中第" + (selectedIndex + 1) + "标签"
);
}
}); jFrame.add(jTabbedPane); jFrame.setResizable(false);
jFrame.setBounds(400, 400, 400, 400); jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// jFrame.pack();
jFrame.setVisible(true);
} public static void main(String[] args) {
new Demo07().init();
}
}
效果:

进度条:
package cn.dzz.swing;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; public class Demo01 { JFrame jFrame = new JFrame("ProgressBar"); // 水平进度条
JProgressBar jProgressBar = new JProgressBar(
JProgressBar.HORIZONTAL
); // 按钮
JCheckBox indeterminate = new JCheckBox("不确定进度");
JCheckBox noBorder = new JCheckBox("无绘制边框"); public void init() {
// 添加
indeterminate.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 获取状态是否为选中
boolean selected = indeterminate.isSelected();
jProgressBar.setIndeterminate(selected);
jProgressBar.setStringPainted(!selected);
}
}); noBorder.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
boolean selected = noBorder.isSelected();
noBorder.setBorderPainted(!selected);
}
});
Box verticalBox = Box.createVerticalBox(); verticalBox.add(indeterminate);
verticalBox.add(noBorder); jProgressBar.setStringPainted(true);
jProgressBar.setBorderPainted(true);
// 改变窗体东西南北中的布局,设置流布局方式
jFrame.setLayout(new FlowLayout());
jFrame.add(verticalBox);
jFrame.add(jProgressBar);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.pack();
jFrame.setVisible(true); // 模拟进度加载
for (int i = 0; i <= 100; i++) {
jProgressBar.setValue(i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
} public static void main(String[] args) {
new Demo01().init();
}
}
效果:

【Java-GUI】10 Swing04的更多相关文章
- 再见!【JAVA GUI】
1.GUI概述 图形用户界面(Graphical User Interface,简称 GUI,又 称图形用户接口)是指采用图形方式显示的计算机操作用户界面. java作为一种面向对象的程序设计语言,它 ...
- 【Java GUI】Java GUI基金会
AWT和Swing Swing是个AWT改进和扩展. 书写GUI规划.Swing和AWT曾效力.他们共存 Java基础类(JFC)于. 虽然AWT和Swing都提供了构造图形界面元素的类.但它们的虫药 ...
- 【Java GUI】Java面板基础:JPanel
有两个面板,常见的面板(JPanel)和滚动面板(JScrollPane) Jpanel 面板是一种常见的容器,JPanel的作用是实现接口层次结构,面放入一些组件.也能够在上面绘画,将放有组件和有画 ...
- 【Java基础】10、Java中throw和throws的区别
系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行. 语句抛出的异常 ...
- 【JAVA基础】10 Object类
1. Object类概述 是类层次结构的根类 每个类都使用 Object 作为超类 所有类都直接或者间接的继承自该类 所有对象(包括数组)都实现这个类的方法. 2. Object的构造方法 publi ...
- 【java设计模式】-00目录
开篇 [java设计模式]-01设计模式简介 创建型模式: [java设计模式]-02工厂模式(Factory Pattern) [java设计模式]-03抽象工厂模式(Abstract Factor ...
- 【Java基础】4、java中的内部类
内部类的分类:常规内部类.静态内部类.私有内部类.局部内部类.匿名内部类. 实例1:常规内部类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 ...
- 【Java编程】JDBC注入攻击-Statement 与 PreparedStatement
在上一篇[Java编程]建立一个简单的JDBC连接-Drivers, Connection, Statement and PreparedStatement我们介绍了怎样使用JDBC驱动建立一个简单的 ...
- 【Java编程】建立一个简单的JDBC连接-Drivers, Connection, Statement and PreparedStatement
本blog提供了一个简单的通过JDBC驱动建立JDBC连接例程.并分别通过Statement和PreparedStatement实现对数据库的查询. 在下一篇blog中将重点比較Statement与P ...
- 【线性表基础】顺序表和单链表的插入、删除等基本操作【Java版】
本文表述了线性表及其基本操作的代码[Java实现] 参考书籍 :<数据结构 --Java语言描述>/刘小晶 ,杜选主编 线性表需要的基本功能有:动态地增长或收缩:对线性表的任何数据元素进行 ...
随机推荐
- Java中的变量分类(按照位置分类)
变量按位置分 通过上面类的建立我们又得到了新的概念:成员变量和局部变量 成员变量: 可以使用基本数据类型,也可以使用引用数据类型. java中的变量在使用时必须初始化,成员变量可以不对其初始化,系统会 ...
- 纯css+html做emoji动态表情
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...
- Visual Studio 2022 community 社区版本离线安装
下载好 vs_community__115739266.1625310894.exe 的,重命名为:vs_community2022.exe 命令: E:\vs_community2022.exe - ...
- sql server 怎么在原有表上加自增长主键列,并指定主键名
sql server 怎么在原有表上加自增长主键列,并指定主键名: ALTER TABLE [Merchant_black] ADD Id bigint identity(1,1) constr ...
- 微信刷脸SDK获取sub_openid
当调用SDK中 获取用户信息(getWxpayfaceUserInfo) /人脸支付凭证(getWxpayfaceCode) 方法获取 sub_openid 时,除了SDK自身要传入sub_appid ...
- Windows CSC提权漏洞复现(CVE-2024-26229)
漏洞信息 Windows CSC服务特权提升漏洞. 当程序向缓冲区写入的数据超出其处理能力时,就会发生基于堆的缓冲区溢出,从而导致多余的数据溢出到相邻的内存区域.这种溢出会损坏内存,并可能使攻击者能够 ...
- k8s使用rbd作为存储
k8s使用rbd作为存储 如果需要使用rbd作为后端存储的话,需要先安装ceph-common 1. ceph集群创建rbd 需要提前在ceph集群上创建pool,然后创建image [root@ce ...
- Jemter代理服务器录制脚本,优化后形成性能测试场景
在进行性能测试(压力.负载)等,先要有对应的测试场景,比如添加功能:要先登录成功,然后调用添加接口,输入添加的内容,才可以添加成功.那么可以通过Jemter代理服务器,设置代理,打开测试的网站,录制脚 ...
- Android自动化-如何获取视图元素属性?
在做Android自动化时候,我们需要知道视图有哪些元素,元素都有哪些属性,获取到属性我们才能获取到元素从而做自动化控制,所以做Android自动化获取元素属性是必要的第一步 获取视图元素属性最便捷的 ...
- python 第一次主要是if while 奇偶数的练习
例如输出1-10的数字,但是7除外. a=1 while a < 11: if a == 7: pass else: print(a) a=a+1 输出1-100所以的偶数 a=1 while ...