/*===============================================================================
* SlightBevelBorder.java<o:p></o:p><o:p></o:p>
*===============================================================================<o:p></o:p>
* auth: Jason<o:p></o:p>
* CSDN ID: Unagain<o:p></o:p>
* Email: tl21cen@hotmail.com<o:p></o:p>
* date: 2006-4-11<o:p></o:p>
*===============================================================================<o:p></o:p>
*/<o:p></o:p>
package tl.util;<o:p></o:p>
<o:p></o:p>
import java.awt.Color;<o:p></o:p>
import java.awt.Component;<o:p></o:p>
import java.awt.Graphics;<o:p></o:p>
<o:p></o:p>
import javax.swing.border.SoftBevelBorder;<o:p></o:p>
<o:p></o:p>
public class SlightBevelBorder extends SoftBevelBorder {<o:p></o:p>
private static final long serialVersionUID = 1L;<o:p></o:p>
<o:p></o:p>
public SlightBevelBorder(int bevelType) {<o:p></o:p>
super(bevelType);<o:p></o:p>
}<o:p></o:p>
<o:p></o:p>
public SlightBevelBorder(int bevelType, Color highlight, Color shadow) {<o:p></o:p>
super(bevelType, highlight, shadow);<o:p></o:p>
}<o:p></o:p>
<o:p></o:p>
/**<o:p></o:p>
* Paints the border for the specified component with the specified<o:p></o:p>
* position and size.<o:p></o:p>
* @param c the component for which this border is being painted<o:p></o:p>
* @param g the paint graphics<o:p></o:p>
* @param x the x position of the painted border<o:p></o:p>
* @param y the y position of the painted border<o:p></o:p>
* @param width the width of the painted border<o:p></o:p>
* @param height the height of the painted border<o:p></o:p>
*/<o:p></o:p>
public void paintBorder(Component c, Graphics g, int x, int y, int width,<o:p></o:p>
int height) {<o:p></o:p>
Color oldColor = g.getColor();<o:p></o:p>
g.translate(x, y);<o:p></o:p>
<o:p></o:p>
if (bevelType == RAISED) {<o:p></o:p>
g.setColor(getHighlightOuterColor(c));<o:p></o:p>
g.drawLine(0, 0, width - 2, 0);<o:p></o:p>
g.drawLine(0, 1, 0, height - 2);<o:p></o:p>
<o:p></o:p>
g.setColor(getShadowOuterColor(c));<o:p></o:p>
g.drawLine(0, height - 1, width - 1, height - 1);<o:p></o:p>
g.drawLine(width - 1, 0, width - 1, height - 1);<o:p></o:p>
<o:p></o:p>
} else if (bevelType == LOWERED) {<o:p></o:p>
g.setColor(getShadowOuterColor(c));<o:p></o:p>
g.drawLine(0, 0, width - 2, 0);<o:p></o:p>
g.drawLine(0, 0, 0, height - 2);<o:p></o:p>
<o:p></o:p>
g.setColor(getHighlightOuterColor(c));<o:p></o:p>
g.drawLine(0, height - 1, width - 1, height - 1);<o:p></o:p>
g.drawLine(width - 1, 0, width - 1, height);<o:p></o:p>
}<o:p></o:p>
g.translate(-x, -y);<o:p></o:p>
g.setColor(oldColor);<o:p></o:p>
}<o:p></o:p>
}
/*===============================================================================<o:p></o:p>
* StatusbarBuilder.java<o:p></o:p>
*===============================================================================<o:p></o:p>
* This program is free software; you can redistribute it and/or modify<o:p></o:p>
* it under the terms of the GNU General Public License as published by<o:p></o:p>
* the Free Software Foundation; either version 2 of the License, or<o:p></o:p>
* (at your option) any later version.<o:p></o:p>
* <o:p></o:p>
* This program is distributed in the hope that it will be useful,<o:p></o:p>
* but WITHOUT ANY WARRANTY; without even the implied warranty of<o:p></o:p>
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<o:p></o:p>
* GNU General Public License for more details.<o:p></o:p>
* <o:p></o:p>
* You should have received a copy of the GNU General Public License<o:p></o:p>
* along with this program; if not, write to the Free Software<o:p></o:p>
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA<o:p></o:p>
*===============================================================================<o:p></o:p>
* auth: Jason<o:p></o:p>
* CSDN ID: Unagain<o:p></o:p>
* Email: tl21cen@hotmail.com<o:p></o:p>
* date: 2006-4-11<o:p></o:p>
*===============================================================================<o:p></o:p>
*/<o:p></o:p>
package tl.util;<o:p></o:p>
<o:p></o:p>
import java.awt.BorderLayout;<o:p></o:p>
import java.awt.Color;<o:p></o:p>
import java.awt.Component;<o:p></o:p>
import java.awt.Cursor;<o:p></o:p>
import java.awt.Dimension;<o:p></o:p>
import java.awt.Graphics;<o:p></o:p>
import java.awt.Point;<o:p></o:p>
import java.awt.Rectangle;<o:p></o:p>
import java.awt.Window;<o:p></o:p>
import java.awt.event.MouseEvent;<o:p></o:p>
import java.awt.event.WindowAdapter;<o:p></o:p>
import java.awt.event.WindowEvent;<o:p></o:p>
import java.util.Hashtable;<o:p></o:p>
<o:p></o:p>
import javax.swing.Box;<o:p></o:p>
import javax.swing.BoxLayout;<o:p></o:p>
import javax.swing.JComponent;<o:p></o:p>
import javax.swing.JFrame;<o:p></o:p>
import javax.swing.JLabel;<o:p></o:p>
import javax.swing.JPanel;<o:p></o:p>
import javax.swing.border.AbstractBorder;<o:p></o:p>
import javax.swing.border.BevelBorder;<o:p></o:p>
import javax.swing.border.EmptyBorder;<o:p></o:p>
import javax.swing.event.MouseInputAdapter;<o:p></o:p>
import javax.swing.text.JTextComponent;<o:p></o:p>
<o:p></o:p>
//class StatusBar extends JComponent {<o:p></o:p>
public class StatusbarBuilder {<o:p></o:p>
//final static Dimension XGAP = new Dimension(2, 0);<o:p></o:p>
<o:p></o:p>
private JPanel bar;<o:p></o:p>
<o:p></o:p>
/**<o:p></o:p>
* matains all instances created, each instance associate<o:p></o:p>
* with an existing window object.<br><o:p></o:p>
* you can create and to obtain a instance using newInstance<o:p></o:p>
* method with a specified window object.<o:p></o:p>
*/<o:p></o:p>
private static <o:p></o:p>
Hashtable<Window, StatusbarBuilder> instances = <o:p></o:p>
new Hashtable<
分享到:
相关推荐
1. 启动 StatusBar:StatusBar 的启动入口是 start() 方法,该方法负责获取各种服务,建立 framework 的联系,并创建 StatusBar.java。 2. 创建 StatusBarView:在 createAndAddWindows() 方法中,StatusBar 创建了 ...
通过学习和实践这个“wpf---StatusBar”示例,开发者能够掌握如何在WPF应用程序中有效地使用和自定义StatusBar,从而提升用户体验。同时,这个简单的实例也是深入学习WPF控件和XAML语言的一个良好起点。
在这个示例项目中,开发者可能展示了如何创建自定义的Status Bar面板,添加自定义按钮,并实现按钮的点击事件处理。这通常涉及到对AutoCAD的`AcadStatusBar`对象的操作,通过它可以添加、删除和修改状态栏组件。例如...
1. 对于字体颜色,我们不能直接使用API函数,因为StatusBar的字体颜色是由其Panels的Font对象控制的。首先,获取需要更改颜色的Panel,通常我们只有一个Panel,如果有的话,可以通过`Panels`属性访问。 2. 然后,...
【状态栏(Status Bar)使用示例】 在Visual Studio 2008中,状态栏(Status Bar)是用户界面中的一个重要元素,通常位于应用程序窗口的底部,用于显示与当前活动相关的简短信息或提示。它能提供实时反馈,帮助用户...
在Android开发中,有时我们可能需要为特定场景禁用状态栏(StatusBar),比如为了实现全屏体验或特殊界面设计。然而,通常情况下,系统权限是不允许应用直接禁用statusBar的,尤其是对于没有获取到SYSTEM_ALERT_...
要自定义StatusBar的颜色,你可以使用`getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);`和`getWindow().setStatusBarColor(int color)`方法。如果想要实现颜色过渡,可以利用...
本示例中的代码主要利用了Subclassing技术来实现对StatusBar文本颜色的自定义设置。Subclassing是一种高级编程技巧,它允许我们拦截并处理Windows控件的标准消息,从而扩展控件的功能或改变其行为。 #### 2. 捕获WM...
本文实例讲述了Android编程实现禁止StatusBar下拉的方法。分享给大家供大家参考,具体如下: Android中有许多隐藏的Service,StatusBarManager就是其中一个,在Context.java中可以看到: /** * Use with {@link #...
基本的StatusBar可以通过以下代码实现: ```xml <StatusBar Height="25"> 状态信息"/> </StatusBar> ``` 为了在状态栏右下角添加三角形,我们可以使用`Path`控件来绘制一个三角形,并将其与一个可点击的`Button`...
本文将深入探讨如何使用Kotlin语言在Android 4.4(KitKat)及以上版本中实现status bar背景的设置与适配。 首先,我们需要了解Android的状态栏。状态栏位于屏幕顶部,显示系统图标、时间以及通知信息,是用户与系统...
在MATLAB编程环境中,"statusbar"是一个关键功能,它用于提供GUI(图形用户界面)中的实时信息提示。状态栏通常位于窗口底部,用来显示与当前操作或程序状态相关的简短信息,帮助用户理解程序运行状况。在MATLAB中...
在深入学习SystemUI和StatusBar的过程中,开发者需要理解Android的窗口管理机制、事件分发机制以及通知系统的实现原理。这些知识点对于开发Android系统级别的应用或者进行系统定制至关重要。通过对ICS版本SystemUI的...
这样,应用就可以通过`CommandQueue.Callbacks`接口实现对StatusBar的操作,如添加、移除或更新通知。 关于StatusBar的显示策略,这部分主要涉及以下几个方面: 1. **Icon管理**: - StatusBar中的每个图标都对应...
"statusbar3"可能是对原生MATLAB状态栏功能的一种增强或定制实现,可能包含了更丰富的交互特性或者自定义样式。 `statusbar.m` 文件很可能包含了创建和管理这个自定义状态栏的代码。在MATLAB中,函数文件通常用于...
"statusbar适配Demo"是一个针对Android 4.4及以上版本的StatusBar适配示例,旨在帮助开发者理解和实现不同版本Android系统的StatusBar兼容性。 在Android 4.4(KitKat)版本中,Google引入了透明StatusBar的概念,...
标题中的“PTP.zip_java statusbar_made_ptp_ptp java”表明这是一个关于Java编程的项目,特别是与创建状态栏(statusbar)有关。在Java中,状态栏通常用于显示程序的状态信息或提示用户,它可能是一个GUI应用程序的...
在MATLAB编程环境中,"statusbar2"是一个用于创建和管理状态栏的示例程序,它特别关注于显示两个进程的已用时间和剩余时间。这个功能对于用户界面(UI)的交互性和信息反馈至关重要,特别是在执行耗时操作时,用户...
在Android应用开发过程中,有时为了实现特定的设计效果或界面需求,开发者可能需要隐藏某些系统组件,如ActionBar、NotificationBar、StatusBar、SystemBar、TitleBar等。本文将详细介绍这些组件的隐藏方法,并提供...