`
djsl6071
  • 浏览: 593596 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

用java实现的Status Bar(zz)

阅读更多

/*===============================================================================

 * 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<

分享到:
评论

相关推荐

    SystemUI StatusBar流程梳理

    1. 启动 StatusBar:StatusBar 的启动入口是 start() 方法,该方法负责获取各种服务,建立 framework 的联系,并创建 StatusBar.java。 2. 创建 StatusBarView:在 createAndAddWindows() 方法中,StatusBar 创建了 ...

    wpf---StatusBar

    通过学习和实践这个“wpf---StatusBar”示例,开发者能够掌握如何在WPF应用程序中有效地使用和自定义StatusBar,从而提升用户体验。同时,这个简单的实例也是深入学习WPF控件和XAML语言的一个良好起点。

    StatusBar_statusbar_ObjectARX_

    在这个示例项目中,开发者可能展示了如何创建自定义的Status Bar面板,添加自定义按钮,并实现按钮的点击事件处理。这通常涉及到对AutoCAD的`AcadStatusBar`对象的操作,通过它可以添加、删除和修改状态栏组件。例如...

    delphi中改变statusbar的背景色和字体颜色

    1. 对于字体颜色,我们不能直接使用API函数,因为StatusBar的字体颜色是由其Panels的Font对象控制的。首先,获取需要更改颜色的Panel,通常我们只有一个Panel,如果有的话,可以通过`Panels`属性访问。 2. 然后,...

    status bar使用示例

    【状态栏(Status Bar)使用示例】 在Visual Studio 2008中,状态栏(Status Bar)是用户界面中的一个重要元素,通常位于应用程序窗口的底部,用于显示与当前活动相关的简短信息或提示。它能提供实时反馈,帮助用户...

    android 禁用statusBar demo

    在Android开发中,有时我们可能需要为特定场景禁用状态栏(StatusBar),比如为了实现全屏体验或特殊界面设计。然而,通常情况下,系统权限是不允许应用直接禁用statusBar的,尤其是对于没有获取到SYSTEM_ALERT_...

    ActionBar and StatusBar

    要自定义StatusBar的颜色,你可以使用`getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);`和`getWindow().setStatusBarColor(int color)`方法。如果想要实现颜色过渡,可以利用...

    精彩编程与编程技巧-设定StatusBar的文字成不同的颜色...

    本示例中的代码主要利用了Subclassing技术来实现对StatusBar文本颜色的自定义设置。Subclassing是一种高级编程技巧,它允许我们拦截并处理Windows控件的标准消息,从而扩展控件的功能或改变其行为。 #### 2. 捕获WM...

    Android编程实现禁止StatusBar下拉的方法

    本文实例讲述了Android编程实现禁止StatusBar下拉的方法。分享给大家供大家参考,具体如下: Android中有许多隐藏的Service,StatusBarManager就是其中一个,在Context.java中可以看到: /** * Use with {@link #...

    wpf 状态栏 右下角三角statusbar

    基本的StatusBar可以通过以下代码实现: ```xml &lt;StatusBar Height="25"&gt; 状态信息"/&gt; &lt;/StatusBar&gt; ``` 为了在状态栏右下角添加三角形,我们可以使用`Path`控件来绘制一个三角形,并将其与一个可点击的`Button`...

    改变statusbar的背景总结

    本文将深入探讨如何使用Kotlin语言在Android 4.4(KitKat)及以上版本中实现status bar背景的设置与适配。 首先,我们需要了解Android的状态栏。状态栏位于屏幕顶部,显示系统图标、时间以及通知信息,是用户与系统...

    matlab开发-statusbar

    在MATLAB编程环境中,"statusbar"是一个关键功能,它用于提供GUI(图形用户界面)中的实时信息提示。状态栏通常位于窗口底部,用来显示与当前操作或程序状态相关的简短信息,帮助用户理解程序运行状况。在MATLAB中...

    SystemUI_StatusBar分析图片

    在深入学习SystemUI和StatusBar的过程中,开发者需要理解Android的窗口管理机制、事件分发机制以及通知系统的实现原理。这些知识点对于开发Android系统级别的应用或者进行系统定制至关重要。通过对ICS版本SystemUI的...

    StatusBar

    这样,应用就可以通过`CommandQueue.Callbacks`接口实现对StatusBar的操作,如添加、移除或更新通知。 关于StatusBar的显示策略,这部分主要涉及以下几个方面: 1. **Icon管理**: - StatusBar中的每个图标都对应...

    matlab开发-statusbar3

    "statusbar3"可能是对原生MATLAB状态栏功能的一种增强或定制实现,可能包含了更丰富的交互特性或者自定义样式。 `statusbar.m` 文件很可能包含了创建和管理这个自定义状态栏的代码。在MATLAB中,函数文件通常用于...

    statusbar适配Demo

    "statusbar适配Demo"是一个针对Android 4.4及以上版本的StatusBar适配示例,旨在帮助开发者理解和实现不同版本Android系统的StatusBar兼容性。 在Android 4.4(KitKat)版本中,Google引入了透明StatusBar的概念,...

    PTP.zip_java statusbar_made_ptp_ptp java

    标题中的“PTP.zip_java statusbar_made_ptp_ptp java”表明这是一个关于Java编程的项目,特别是与创建状态栏(statusbar)有关。在Java中,状态栏通常用于显示程序的状态信息或提示用户,它可能是一个GUI应用程序的...

    matlab开发-statusbar2

    在MATLAB编程环境中,"statusbar2"是一个用于创建和管理状态栏的示例程序,它特别关注于显示两个进程的已用时间和剩余时间。这个功能对于用户界面(UI)的交互性和信息反馈至关重要,特别是在执行耗时操作时,用户...

    如何隐藏Android4.0及以上版本的ActionBar、NotificationBar、StatusBar、SystemBar、TitleBar

    在Android应用开发过程中,有时为了实现特定的设计效果或界面需求,开发者可能需要隐藏某些系统组件,如ActionBar、NotificationBar、StatusBar、SystemBar、TitleBar等。本文将详细介绍这些组件的隐藏方法,并提供...

Global site tag (gtag.js) - Google Analytics