`
wuhua
  • 浏览: 2112246 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

自定义外观的Button

    博客分类:
  • J2ME
阅读更多
派生自
BasicButtonUI
的类可以改变按钮的外观,定位于
javax.swing.plaf.metal

MetalButtonUI
类,控制
metal
视感下
Button
的外观

       JButton b = new JButton();

       b.setUI(new MyUI);

2 .派生自 javax.swing.plaf.basic.BasicBorders.ButtonBorder 的类可以改变按钮的边框绘制, metal 视感下 JButton 边框由 javax.swing.plaf.metal.MetalBorders.ButtonBorder 绘制

       b.setBorder();

必须先 setUI setBorder

 

JButton 的结构

MVC 模式设计

Model ButtonModel

View BasicButtonUI ( 根据不同的视感,再有不同的子类,如 MetalButtonUI)

          以及 javax.swing.plaf.metal.MetalBorders.ButtonBorder

,控制边框的绘制

              MetalButtonUI update 方法控制了按钮初始时的绘制( MetalUtils.drawGradient(c, g, "Button.gradient", 0, 0, c.getWidth(), c.getHeight(), true) ),因此,即使重写 paint() 方法,初始按钮仍然会被绘制。

Controller JButton ( 一般使用 AbstractButton ,各种 Button 的父类 )

 

about MetalUtils , Metal utility tools.

定位于javax.swing.plaf.metal.MetalUtils 提供了大量 Metal 视感下的辅助方法(按钮初始化的 Gradient 样式就是通过它的 drawGradient 方法绘制的)。并提供了三个 inner class 进行视感处理。

       GradientPainter

       OceanDisabledButtonImageFilter

       OceanToolBarImageFilter

MetalUtils 不是 public class, 因此无法从外部包访问其

 

关于 MetalButtonUI update 方法及 JButton 的初始绘制

       MetalButtonUI .update() 负责绘制按钮的初始样式(调用 MetalUtils.drawGradient() 方法绘制)。然后调用 paint() 方法绘制其他效果( pressed, focus, text )。最后调用 super.update()

Super.update() 传递给 BasicButtonUI ,由于 BasicButtonUI 没有 overload update 方法,因此传递给 javax.swing.plaf.ButtonUI

ButtonUI 是一个 abstract class 因此 update 方法继续传递给 javax.swing.plaf.ComponentUI

       ComponentUI update 方法只是简单的 fillRect 组件,然后调用 paint()

分享到:
评论
6 楼 longzy 2009-06-19  
S60 支持 eswt ,都没看到 什么人用过。

se 有一款 真机支持cdc。忘记了型号了。

其实 这些 mvc 啊什么的。我之前听说过,不了解。后来自己写代码,反复修改修改,觉得结构比较好了。再后来,看mvc的书,发现,这东西的结构怎么跟我写的差不多。。。。

说这个主要是想说,常常把以前的老代码拿来回炉,也是提高的一种方法。
5 楼 lpscoolio 2009-05-23  
cdc里面哪里有swing,只有awt啊
4 楼 wuhua 2008-10-20  
java.lang.Object 写道

现在CDC的手机几乎没有吧,大部份都是CLDC哦

Sun 出了一个CDC Toolkit 1.0,有兴趣可以了解下,
不过我还是喜欢Anroid
3 楼 java.lang.Object 2008-10-19  
现在CDC的手机几乎没有吧,大部份都是CLDC哦
2 楼 wuhua 2008-10-19  
没有发错。CDC也有这样的东西
1 楼 java.lang.Object 2008-10-17  
发错了吧,这是SWING的内容啊,

相关推荐

    C# 自定义控件 自定义Button控件 水晶按钮

    本主题将深入探讨如何在C#中自定义一个“水晶按钮”控件,它不仅具备基本Button的功能,还可以通过自定义样式和效果实现独特的视觉体验。 首先,我们需要了解控件的基本构造。在C#中,自定义控件通常继承自已有的...

    C#自定义按钮、自定义Button控件

    标题"‘C#自定义按钮、自定义Button控件’"所指的就是利用C#编程语言和.NET框架创建一个具有特定外观和行为的自定义Button控件。这通常涉及到对控件的外观进行定制,例如改变其背景色、边框样式、文字颜色,甚至添加...

    自定义的button

    这样可以在不修改代码的情况下,通过更改主题来改变所有自定义Button的外观。 通过以上步骤,你可以创建一个具备特定功能或设计的自定义Button。然而,自定义控件往往涉及到更多的细节,如动画效果、触摸反馈、性能...

    WPF自定义Button控件

    在Windows Presentation Foundation (WPF) 中,自定义控件是一项重要的功能,它允许开发者根据自己的需求创建具有独特外观和行为的UI元素。本教程将聚焦于如何创建一个Vista风格的Button控件,以提供更丰富的用户...

    Android 自定义仿Button按下

    重写onDraw()方法绘制自定义的按钮外观。 2. **按下抬起状态**:在自定义的View中,我们需要监听ACTION_DOWN(手指按下)和ACTION_UP(手指抬起)这两个触摸事件。当ACTION_DOWN发生时,改变按钮的状态,比如改变...

    Linux QtDesigner自定义Button控件

    在某些特定的应用场景中,我们可能需要自定义特定的控件以满足个性化需求,例如自定义Button控件。本教程将详细介绍如何在Qt4中使用Qt Designer实现自定义Button控件的过程。 首先,要创建自定义的Button控件,你...

    SwiftUI Button自定义风格

    首先,SwiftUI的`Button`允许我们通过`ButtonStyle`来改变其外观和行为。默认的`ButtonStyle`会根据平台和状态(如按下或悬浮)提供不同的视觉反馈。但是,如果你想要更精细的控制,比如定制标题的字体大小、颜色、...

    平台下的自定义按钮Button

    在IT领域,自定义按钮(Button)是用户界面设计中的重要元素,特别是在各种软件平台和应用程序中。"平台下的自定义按钮Button"这个主题聚焦于如何在特定的开发环境中创建和定制自己的按钮控件,以满足个性化的需求。...

    阿龙自定义Button和Textbox

    在.NET中,我们可以继承现有的System.Windows.Forms.Button类来创建一个自定义的Button。这允许我们扩展或修改控件的行为、外观或功能。首先,创建一个新的类并让它继承自Button。通过这种方式,我们可以重写某些...

    安卓 android 自定义 switch button,滑动开关

    最后,为了让自定义`Switch`按钮在不同的设备和Android版本上保持一致的外观和行为,可以使用`style`和`主题`进行适配。在`res/values/styles.xml`中定义自定义样式,并在应用程序的主主题中应用: ```xml <!-- ...

    AndEngine自定义Button

    - 在新类中,你需要提供一个构造函数,接受图像资源ID、初始位置等参数,以初始化Button的外观。 - 为Button添加点击事件监听器。AndEngine提供了TouchEvent类来处理触摸事件,你需要覆盖onAreaTouched()方法,以...

    C# 5种类型的自定义Button控件合集GDI+自绘精美漂亮的播放器按钮

    在本文中,我们将深入探讨如何使用C#编程语言创建自定义的Button控件,特别是针对播放器、Vista风格以及Office 2007和2010样式的设计。我们将利用GDI+图形设备接口的强大功能,实现按钮的自绘,以创造出美观且功能...

    C#自定义控件合集-SunnyUI.rar

    本文将深入探讨“C#自定义控件合集-SunnyUI.rar”这个压缩包中的知识点,包括自定义控件的创建、Button、进度条、Box(可能指的是对话框)以及提示框的实现和外观设计。 首先,自定义控件在C# Winform开发中扮演着...

    swing自定义 button

    Swing提供了丰富的功能,使得开发者能够自定义按钮的行为、外观和交互方式。本篇文章将详细探讨如何创建和自定义`JButton`,以及如何响应按钮点击事件。 ### 1. `JButton`的基本使用 `JButton`是`AbstractButton`...

    android使用了自定义button自定义tabHost切换页面Demo

    本示例主要讲解如何使用自定义的Button和TabHost来实现页面间的切换,从而创建一个具有个性化标签导航功能的应用。 首先,我们来看看“自定义button”。在Android原生的Button组件基础上进行自定义,主要是为了满足...

    Qt 自定义 Button 之美

    在 Qt 框架中,自定义 Button 是一个常见的需求,它允许开发者创造出具有独特视觉效果和交互方式的按钮控件。"Qt 自定义 Button 之美" 主题深入探讨了如何利用 Qt 的强大功能来定制按钮,以满足个性化设计和功能扩展...

    自定义wpf中的MessageBox(可自定义button键文字)

    然而,其默认的功能和样式可能无法满足所有开发需求,比如我们可能希望自定义按钮上的文字或者对话框的外观。标题"自定义wpf中的MessageBox(可自定义button键文字)"恰好指向了这一需求。通过自定义,我们可以让...

    【Qt】仿360安全卫士(自定义ToolButton).rar

    【Qt】仿360安全卫士(自定义ToolButton)是关于使用Qt框架来创建一个类似360安全卫士界面的项目,主要聚焦在自定义QToolButton控件上。Qt是一个跨平台的C++图形用户界面应用程序开发框架,广泛应用于桌面应用、移动...

    自定义Button控件显示

    接下来,我们可以通过设置属性来改变Button的外观。例如,更改背景颜色或图片: ```java public void init() { // 设置背景色 setBackgroundColor(Color.parseColor("#FF0000")); // 设置背景图片 ...

    自定义仿IOSButton

    3. 自定义绘制:通过重写`onDraw()`方法,我们可以控制Button的绘制逻辑,实现与iOS相似的外观。 ```java @Override protected void onDraw(Canvas canvas) { // 绘制背景、边框、文字等 // ... } ``` 4. 动画...

Global site tag (gtag.js) - Google Analytics