【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语言描述>/刘小晶 ,杜选主编 线性表需要的基本功能有:动态地增长或收缩:对线性表的任何数据元素进行 ...
随机推荐
- bpmn.js
在 BPMN.js 中,$inject 属性通常用于声明依赖注入的模块列表.这些模块会在创建对象实例时由依赖注入框架(如 AngularJS)提供.以下是在 BPMN.js 中常见的一些 $injec ...
- .NET5 .NET CORE 使用Apollo
Apollo默认有一个"SampleApp"应用,"DEV"环境 和 "timeout" KEY. nuget 中下载 "Com. ...
- 腾讯云 BI 数据分析与可视化的快速入门指南
前言 腾讯云 BI 是一款商业智能解决方案,提供数据接入.分析.可视化.门户搭建和权限管理等全流程服务.它支持敏捷自助设计,简化报表制作,并通过企业微信等渠道实现协作.产品分为个人版.基础版.专业版和 ...
- Javascript高级程序设计第五章 | ch5 | 阅读笔记
基本引用类型 Date 在不给定时间的情况下创建Date实例,创建的对象将保存当前的日期和时间. 要基于其他时间创建Date对象,必须传入其毫秒时表示 Date.parse() 月/日/年(5/21/ ...
- 推荐一款基于业务行为驱动开发(BDD)测试框架:Cucumber!
大家好,我是狂师. 今天给大家介绍一款行为驱动开发测试框架:Cucumber. 1.介绍 Cucumber是一个行为驱动开发(BDD)工具,它结合了文本描述和自动化测试脚本.它使用一种名为Gherki ...
- Google 发布最新开放大语言模型 Gemma 2,现已登陆 Hugging Face Hub
Google 发布了最新的开放大语言模型 Gemma 2,我们非常高兴与 Google 合作,确保其在 Hugging Face 生态系统中的最佳集成.你可以在 Hub 上找到 4 个开源模型(2 个 ...
- hadoop集群配置文件与功能对应解析
以三个节点的集群为例: 总括: nodemanager ,datanode --> slavesresourcemanager ----------> yarn namenode ...
- 【Hadoop】Hadoop集群组件默认端口
这里包含使用到的组件:HDFS, YARN, HBase, Hive, ZooKeeper: 组件 节点 默认端口 配置 用途说明 HDFS DataNode 50010 dfs.datanode.a ...
- 开源GTKSystem.Windows.Forms框架让C# winform支持跨平台运行
目录 一.简介 二.GTKSystem.Windows.Forms框架的优势 三.支持界面皮肤主题定制 四.多种控件支持 五.支持Dock.Anchor.SplitContainer布局缩放 六.支持 ...
- Spring的@Configuration和@Bean注解定义第三方bean
@Configuration和@Bean注解的使用 @Configuration标注在类上,相当于把该类作为spring的xml配置文件中<beans>,作用为:配置spring容器(应用 ...