`

Swing组件最大化最小化按钮实现

    博客分类:
  • Java
 
阅读更多

最近在做JFrame窗口的时候为了将边框弄得更加美观,所以需要去掉默认的边框.然后在窗体上加上最大最小化与关闭按钮.(代码中ChatUI为类名)

 

主要方法:setExtendedState();

 

第一步:去掉JAVA边框

this.setUndecorated(true);

 

第二步:增加JButton按钮.

 

closeT = new JButton(new ImageIcon(
				"images\\chat\\sysbtn_close_normal.png"));
		closeT.setBounds(64, 0, 26, 19);
		threeButton.add(closeT);
		closeT.setActionCommand("关闭");
//不显示按钮的边框
		closeT.setBorderPainted(false);
//增加动作监听器
		closeT.addActionListener(lis);
//不可设为焦点
		closeT.setFocusable(false);
//透明
		closeT.setContentAreaFilled(false);
//增加鼠标监听器,当鼠标移到相应位置替换图片实现变色效果
//这里为了方便展示思路每次都new了一个ImageIcon.
		closeT.addMouseListener(new MouseAdapter() {

			public void mouseEntered(MouseEvent e) {
				closeT.setIcon(new ImageIcon(
						"images\\chat\\sysbtn_close_hover.png"));
			}

			public void mouseExited(MouseEvent e) {
				closeT.setIcon(new ImageIcon(
						"images\\chat\\sysbtn_close_normal.png"));
			}

			public void mousePressed(MouseEvent e) {
				closeT.setIcon(new ImageIcon(
						"images\\chat\\sysbtn_close_down.png"));
			}

		});

 

最小化类似.最大化有点特别,这与系统提供的最小化最大化方法有关.

 

第三步,增加的动作监听器里面实现其功能

isMax为标记当前是不是最大化窗口,最大化的时候点击该按钮需要还原成正常窗口.

 

                       if (source.equals("关闭")) {
				ChatUI.this.dispose();//不退出程序
			} else if (source.equals("最小化")) {
				ChatUI.this.setExtendedState(ICONIFIED);
			} else if (source.equals("最大化")) {
				if (!isMax) {
					ChatUI.this.setExtendedState(MAXIMIZED_BOTH);
					isMax = true;
				} else {
					ChatUI.this.setExtendedState(NORMAL);
					isMax = false;
				}
			}

 

 

因为最大化之后最小化,再调出窗口之后,窗口将恢复成正常窗口大小.所以在最大化这里需要加个判断,如果本来不是最大化窗口,直接正常弹出.否则,弹出后再设置为最大化窗口.

这个实现需要在窗口上加上一个窗口监听器.具体实现如下:

 

               this.addWindowListener(new WindowAdapter() {
			public void windowActivated(WindowEvent e) {
				if (isMax) {
					ChatUI.this.setExtendedState(MAXIMIZED_BOTH);
				}
			}
		});

 

0
0
分享到:
评论

相关推荐

    如何去掉JFrame上的最大化最小化和关闭按钮.doc

    如何去掉JFrame上的最大化最小化和关闭按钮 在Java中,JFrame是一个基本的GUI组件,用于创建窗口式应用程序。然而,在某些情况下,我们可能需要去掉JFrame上的最大化、最小化和关闭按钮,以实现自定义的窗体样式。...

    JAVA Swing组件外观

    3. **丰富的动画效果**:Quaqua提供了许多动画效果,如窗口最小化和最大化时的平滑过渡,以及弹出菜单的展开动画,提升了用户界面的动态感。 4. **高度可定制**:开发者可以根据需求调整Quaqua的外观,包括颜色、...

    Java_Swing窗体种类简介

    3. **窗口的可定制性**:可以自定义窗口的大小、是否可调整大小、是否可以最小化或最大化等。 4. `getContentPane()`方法:用于获取窗口的主内容面板,便于添加组件。 #### JApplet、JDialog 和 JPanel - **...

    用Swing实现8种排序算法

    - Swing组件基于轻量级组件模型,这意味着它们不依赖于底层操作系统,因此可以提供一致的跨平台体验。 - Swing包含各种组件,如JFrame、JButton、JLabel、JTable等,用于构建复杂的用户界面。 2. **8种排序算法**...

    Java 2图形设计 卷Ⅱ:SWING(下).rar

    它包含了JFrame内的所有组件,并提供了关闭、最大化和最小化等窗口操作。 - JPanel:这是一个基本的容器,可以用来组合其他组件,同时支持自定义布局管理。 - JButton、JLabel、JTextField、JTextArea、JCheckBox...

    Java_窗体组件用法大全

    3. `WindowStateListener`:监听窗口状态变化的事件,例如窗口被最大化或最小化。 **事件处理** 在每个监听器的方法中,通常会有一些输出语句来展示事件的发生,如打印日志。实际应用中,这些方法会执行相应的业务...

    quaqua swing UI

    例如,窗口最小化和最大化动作可能会有平滑的过渡动画。 7. **国际化与无障碍**:考虑Quaqua是否支持你的应用程序的国际化需求,以及是否符合无障碍标准,这对于具有广泛用户基础的应用程序尤其重要。 总的来说,...

    swing 计算器

    8. **窗口设置**:最后,我们还需要设置窗口的基本属性,如大小、位置、标题等,以及是否允许窗口被最大化或最小化。 通过以上步骤,我们可以构建出一个基本的Swing计算器。这个过程中,你会接触到Swing的组件、...

    swing-workbench

    2. **Dockable**:表示可以停靠的组件,如编辑器、工具面板等,具有打开、关闭、最小化和最大化等操作。 3. **DockLayout**:布局管理器,控制Dockable如何在DockContainer中排列和显示。 4. **DockBar**:停靠栏,...

    swing substance-6.0.jar 皮肤包.zip

    3. **动画效果**:Substance支持各种动态效果,如按钮按下时的下陷效果、窗口最小化和最大化时的过渡动画等,增强用户交互体验。 4. **组件增强**:Substance扩展了Swing组件的功能,例如,它为JTable提供了更丰富...

    swing前台

    开发者可以设置窗口的大小、位置、标题,以及添加关闭、最大化、最小化按钮等。 2. **JPanel**: JPanel是Swing中的一个轻量级容器,用于组合其他组件或自定义布局。开发者可以利用它实现复杂的布局管理,通过嵌套...

    java中常用的9种组件

    它承载其他组件,并提供关闭、最小化和最大化的窗口操作。创建JFrame时,通常需要通过`setDefaultCloseOperation()`设置窗口关闭时的操作。 2. **JLabel**:用于显示文本或图像,可以是静态信息或状态指示。创建...

    java写的一个流星雨小程序【全屏版】

    "去除边框"和"最大化最小化关闭按钮"是通过设置JFrame的属性完成的,例如调用`setUndecorated(true)`可以移除边框和标题栏,而隐藏控制按钮通常需要自定义窗口装饰器,以实现更定制化的界面效果。 标签中的"java...

    Swing之入门PPT.布局

    在Swing中,JFrame是一个顶级容器,它是大部分Swing应用程序的基础,因为它提供了带有标题、边框、关闭、最小化和最大化按钮的标准窗口。JPanel是中间容器,可以包含其他组件,并且可以使用不同的布局管理器来组织...

    Swing事件源可能触发的事件

    它能触发`WindowEvent`,例如当窗口被创建、关闭、最小化或最大化时。`WindowListener`或`WindowAdapter`用于监听这些事件。 2. **AbstractButton**(包括JButton, JToggleButton, JCheckBox, JRadioButton): 这些...

    Java开发的俄罗斯方块游戏(内含源码+运行视频+设计文档)

    Java Swing组件中包括以下几个常用的类:JFrame 是屏幕上的图形对象,可以有最大化、最小化、关闭等基本操作,是Java的GUI程序设计的基本思路;JPanel 能够用来嵌套,对窗体中有相同逻辑功能的组件进行组合,能够...

    Java-Swing控件实例代码

    JFrame可以包含菜单栏、标题、最大化和最小化按钮等。 2. **JLabel**:用于显示文本或图像,不可编辑。例如,可以创建一个标签来说明某个输入框的作用。 3. **JButton**:按钮组件,用户点击后可以触发特定的事件...

Global site tag (gtag.js) - Google Analytics