最近在做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); } } });
相关推荐
如何去掉JFrame上的最大化最小化和关闭按钮 在Java中,JFrame是一个基本的GUI组件,用于创建窗口式应用程序。然而,在某些情况下,我们可能需要去掉JFrame上的最大化、最小化和关闭按钮,以实现自定义的窗体样式。...
3. **丰富的动画效果**:Quaqua提供了许多动画效果,如窗口最小化和最大化时的平滑过渡,以及弹出菜单的展开动画,提升了用户界面的动态感。 4. **高度可定制**:开发者可以根据需求调整Quaqua的外观,包括颜色、...
3. **窗口的可定制性**:可以自定义窗口的大小、是否可调整大小、是否可以最小化或最大化等。 4. `getContentPane()`方法:用于获取窗口的主内容面板,便于添加组件。 #### JApplet、JDialog 和 JPanel - **...
- Swing组件基于轻量级组件模型,这意味着它们不依赖于底层操作系统,因此可以提供一致的跨平台体验。 - Swing包含各种组件,如JFrame、JButton、JLabel、JTable等,用于构建复杂的用户界面。 2. **8种排序算法**...
它包含了JFrame内的所有组件,并提供了关闭、最大化和最小化等窗口操作。 - JPanel:这是一个基本的容器,可以用来组合其他组件,同时支持自定义布局管理。 - JButton、JLabel、JTextField、JTextArea、JCheckBox...
3. `WindowStateListener`:监听窗口状态变化的事件,例如窗口被最大化或最小化。 **事件处理** 在每个监听器的方法中,通常会有一些输出语句来展示事件的发生,如打印日志。实际应用中,这些方法会执行相应的业务...
例如,窗口最小化和最大化动作可能会有平滑的过渡动画。 7. **国际化与无障碍**:考虑Quaqua是否支持你的应用程序的国际化需求,以及是否符合无障碍标准,这对于具有广泛用户基础的应用程序尤其重要。 总的来说,...
8. **窗口设置**:最后,我们还需要设置窗口的基本属性,如大小、位置、标题等,以及是否允许窗口被最大化或最小化。 通过以上步骤,我们可以构建出一个基本的Swing计算器。这个过程中,你会接触到Swing的组件、...
2. **Dockable**:表示可以停靠的组件,如编辑器、工具面板等,具有打开、关闭、最小化和最大化等操作。 3. **DockLayout**:布局管理器,控制Dockable如何在DockContainer中排列和显示。 4. **DockBar**:停靠栏,...
3. **动画效果**:Substance支持各种动态效果,如按钮按下时的下陷效果、窗口最小化和最大化时的过渡动画等,增强用户交互体验。 4. **组件增强**:Substance扩展了Swing组件的功能,例如,它为JTable提供了更丰富...
开发者可以设置窗口的大小、位置、标题,以及添加关闭、最大化、最小化按钮等。 2. **JPanel**: JPanel是Swing中的一个轻量级容器,用于组合其他组件或自定义布局。开发者可以利用它实现复杂的布局管理,通过嵌套...
它承载其他组件,并提供关闭、最小化和最大化的窗口操作。创建JFrame时,通常需要通过`setDefaultCloseOperation()`设置窗口关闭时的操作。 2. **JLabel**:用于显示文本或图像,可以是静态信息或状态指示。创建...
"去除边框"和"最大化最小化关闭按钮"是通过设置JFrame的属性完成的,例如调用`setUndecorated(true)`可以移除边框和标题栏,而隐藏控制按钮通常需要自定义窗口装饰器,以实现更定制化的界面效果。 标签中的"java...
在Swing中,JFrame是一个顶级容器,它是大部分Swing应用程序的基础,因为它提供了带有标题、边框、关闭、最小化和最大化按钮的标准窗口。JPanel是中间容器,可以包含其他组件,并且可以使用不同的布局管理器来组织...
它能触发`WindowEvent`,例如当窗口被创建、关闭、最小化或最大化时。`WindowListener`或`WindowAdapter`用于监听这些事件。 2. **AbstractButton**(包括JButton, JToggleButton, JCheckBox, JRadioButton): 这些...
Java Swing组件中包括以下几个常用的类:JFrame 是屏幕上的图形对象,可以有最大化、最小化、关闭等基本操作,是Java的GUI程序设计的基本思路;JPanel 能够用来嵌套,对窗体中有相同逻辑功能的组件进行组合,能够...
JFrame可以包含菜单栏、标题、最大化和最小化按钮等。 2. **JLabel**:用于显示文本或图像,不可编辑。例如,可以创建一个标签来说明某个输入框的作用。 3. **JButton**:按钮组件,用户点击后可以触发特定的事件...