热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java隐藏标题栏_隐藏Java中标题栏上的按钮

不幸的是,你无法隐藏这些按钮。我也尝试了这个并没有成功。但是,有一个解决方法,即创建一个自定义标题栏。这有点乏味,但它确实有

不幸的是,你无法隐藏这些按钮。我也尝试了这个并没有成功。但是,有一个解决方法,即创建一个自定义标题栏。这有点乏味,但它确实有效。

以下步骤可以帮助您:

1)调用setUndecorated(true)方法。不幸的是,这将完全删除标题栏,但允许您执行第2步。

2)然后,创建一个允许您使用JFrame创建标题栏的类。请记住,窗口按钮显示在Windows操作系统的右侧,左侧显示在Mac OS中。标题文本也以Mac为中心,在Windows上左对齐。

3)使用JLabel显示标题文字,使用JButton显示,最小化,最大化和关闭按钮。

我还建议将按钮分组并定位标题文本,使标题栏看起来类似于计算机上显示的操作系统

4)[可选]您可以将ActionListener附加到按钮以呈现窗口行为。这包括setState()用于最小化和setExtendedState用于最大化。关闭窗口会为应用程序提供两个选项System.exit(0),为applet提供dispose()选项

5)[也可选]禁用按钮,只需使用setEnabled(false)方法即可。在您的情况下,要隐藏这些按钮,您可以使用setVisible(false)

以下代码段演示了这一点:

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

class TitleBar extends JPanel

{

private JLabel titleLabel; //create this to hold the title text

JFrame frame = new JFrame();

int pX, pY; //used for window dragging

private JButton closeBtn, minBtn, maxBtn; //create these for the window buttons

public TitleBar(String title)

{

setPreferredSize(new Dimension(1000, 28));

titleLabel = new JLabel(title);

titleLabel.setOpaque(true);

JPanel controls = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0)); //define this to hold the title text and window buttons

closeBtn = new JButton(); //define the Close button

closeBtn.setBorderPainted(false);

//set the icons for the states

closeBtn.setIcon(new WindowButtonIcon().new CloseIcon(true, false));

closeBtn.setPressedIcon(new WindowButtonIcon().new CloseIcon(true, true));

closeBtn.setDisabledIcon(new WindowButtonIcon().new CloseIcon(false, false));

//Apply the more fine adjustments

closeBtn.setPreferredSize(new Dimension(17, 17));

closeBtn.setRolloverEnabled(false);

closeBtn.setFocusPainted(false);

//Attach this action listener to render the "close window" function

closeBtn.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

System.exit(0);

}

});

minBtn = new JButton(); // define the Minimize button

minBtn.setBorderPainted(false);

//set the icons for the selection states

minBtn.setIcon(new WindowButtonIcon().new MinimizeIcon(true, false));

minBtn.setPressedIcon(new WindowButtonIcon().new MinimizeIcon(true, true));

minBtn.setDisabledIcon(new WindowButtonIcon().new MinimizeIcon(false, false));

//Apply the more fine adjustments

minBtn.setPreferredSize(new Dimension(17, 17));

minBtn.setRolloverEnabled(false);

minBtn.setFocusPainted(false);

maxBtn = new JButton(); //define the Maximize button

maxBtn.setBorderPainted(false);

//set the icons for the selection states

maxBtn.setIcon(new WindowButtonIcon().new MaximizeIcon(true, false));

maxBtn.setPressedIcon(new WindowButtonIcon().new MaximizeIcon(true, true));

maxBtn.setDisabledIcon(new WindowButtonIcon().new MaximizeIcon(false, false));

//Apply the more fine adjustments

maxBtn.setPreferredSize(new Dimension(17, 17));

maxBtn.setRolloverEnabled(false);

maxBtn.setFocusPainted(false);

//This JPanel will set up the title text and window buttons

controls.setBackground(null);

controls.add(minBtn);

controls.add(Box.createRigidArea(new Dimension(4, 0)));

controls.add(maxBtn);

controls.add(Box.createRigidArea(new Dimension(4, 0)));

controls.add(closeBtn);

setLayout(new FlowLayout(FlowLayout.LEFT, 0, 3));

//construct the custom title bar

add(titleLabel);

add(Box.createRigidArea(new Dimension(790, 0)));

add(controls);

//These render window dragging

addMouseListener(new MouseAdapter()

{

public void mousePressed(MouseEvent me)

{

// Get x,y and store them

pX = me.getX();

pY = me.getY();

}

public void mouseDragged(MouseEvent me)

{

frame.setLocation(frame.getLocation().x + me.getX() - pX, frame.getLocation().y + me.getY() - pY);

}

});

addMouseMotionListener(new MouseMotionAdapter()

{

public void mouseDragged(MouseEvent me)

{

frame.setLocation(frame.getLocation().x + me.getX() - pX, frame.getLocation().y + me.getY() - pY);

}

});

}

}

此类构造Windows外观中的标题栏。请注意,此处使用的Icon类未给出,但是,您可以创建一个可以显示一个类的类。

如果您想要拖动窗口,MouseEvent侦听器是必须的。

如果要关闭窗口,还需要关闭按钮的ActionEvent侦听器。隐藏和禁用此按钮将自然禁用此功能

我希望这会有所帮助。



推荐阅读
  • 掌握Android UI设计:利用ZoomControls实现图片缩放功能
    本文介绍了如何在Android应用中通过使用ZoomControls组件来实现图片的缩放功能。ZoomControls提供了一种简单且直观的方式,让用户可以通过点击放大和缩小按钮来调整图片的显示大小。文章详细讲解了ZoomControls的基本用法、布局设置以及与ImageView的结合使用方法,适合初学者快速掌握Android UI设计中的这一重要功能。 ... [详细]
  • 微信小程序实现类似微博的无限回复功能,内置云开发数据库支持
    本文详细介绍了如何利用微信小程序实现类似于微博的无限回复功能,并充分利用了微信云开发的数据库支持。文中不仅提供了关键代码片段,还包含了完整的页面代码,方便开发者按需使用。此外,HTML页面中包含了一些示例图片,开发者可以根据个人喜好进行替换。文章还将展示详细的数据库结构设计,帮助读者更好地理解和实现这一功能。 ... [详细]
  • 本文总结了JavaScript的核心知识点和实用技巧,涵盖了变量声明、DOM操作、事件处理等重要方面。例如,通过`event.srcElement`获取触发事件的元素,并使用`alert`显示其HTML结构;利用`innerText`和`innerHTML`属性分别设置和获取文本内容及HTML内容。此外,还介绍了如何在表单中动态生成和操作``元素,以便更好地处理用户输入。这些技巧对于提升前端开发效率和代码质量具有重要意义。 ... [详细]
  • 在 PySimpleGUI 中实现异步功能的详细指南 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • 本文探讨了如何利用Java代码获取当前本地操作系统中正在运行的进程列表及其详细信息。通过引入必要的包和类,开发者可以轻松地实现这一功能,为系统监控和管理提供有力支持。示例代码展示了具体实现方法,适用于需要了解系统进程状态的开发人员。 ... [详细]
  • 分享一款基于Java开发的经典贪吃蛇游戏实现
    本文介绍了一款使用Java语言开发的经典贪吃蛇游戏的实现。游戏主要由两个核心类组成:`GameFrame` 和 `GamePanel`。`GameFrame` 类负责设置游戏窗口的标题、关闭按钮以及是否允许调整窗口大小,并初始化数据模型以支持绘制操作。`GamePanel` 类则负责管理游戏中的蛇和苹果的逻辑与渲染,确保游戏的流畅运行和良好的用户体验。 ... [详细]
  • 在Java项目中,当两个文件进行互相调用时出现了函数错误。具体问题出现在 `MainFrame.java` 文件中,该文件位于 `cn.javass.bookmgr` 包下,并且导入了 `java.awt.BorderLayout` 和 `java.awt.Event` 等相关类。为了确保项目的正常运行,请求提供专业的解决方案,以解决函数调用中的错误。建议从类路径、依赖关系和方法签名等方面入手,进行全面排查和调试。 ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
  • 在 Angular Google Maps 中实现图片嵌入信息窗口的功能,可以通过使用 `@agm/core` 库来实现。该库提供了丰富的 API 和组件,使得开发者可以轻松地在地图上的信息窗口中嵌入图片。本文将详细介绍如何配置和使用这些组件,以实现动态加载和显示图片的功能。此外,还将探讨一些常见的问题和解决方案,帮助开发者更好地集成这一功能。 ... [详细]
  • jQuery插件验证与屏幕键盘功能的集成解决方案
    本文介绍了一种集成了验证功能和屏幕键盘的jQuery插件解决方案。该插件不仅提供了强大的表单验证功能,还引入了一个高度可定制的屏幕键盘,以增强用户体验。通过这一集成方案,开发者可以轻松实现复杂的表单验证逻辑,并为用户提供便捷的输入方式,特别适用于移动设备或特殊输入场景。 ... [详细]
  • 在探讨C语言编程文本编辑器的最佳选择与专业推荐时,本文将引导读者构建一个基础的文本编辑器程序。该程序不仅能够打开并显示文本文件的内容及其路径,还集成了菜单和工具栏功能,为用户提供更加便捷的操作体验。通过本案例的学习,读者可以深入了解文本编辑器的核心实现机制。 ... [详细]
  • 深入解析 Android Drawable:第六阶段进阶指南 ... [详细]
  • Android ListView 自定义 CheckBox 实现列表项多选功能详解
    本文详细介绍了在Android开发中如何在ListView的每一行添加CheckBox,以实现列表项的多选功能。用户不仅可以通过点击复选框来选择项目,还可以通过点击列表的任意一行来完成选中操作,提升了用户体验和操作便捷性。同时,文章还探讨了相关的事件处理机制和布局优化技巧,帮助开发者更好地实现这一功能。 ... [详细]
author-avatar
老海文
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有