`
VIP庚
  • 浏览: 223355 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java swing 一些控件样式的美化

 
阅读更多
1 按钮

JButton btn= new JButton();
//设置按钮默认图标
btn.setIcon();
// 设置按钮按下图标
btn.setPressedIcon();	
//设置按钮点击图标	
btn.setRolloverIcon();	
// 设置按钮无边框	
btn.setBorderPainted(false);
//设置按钮背景透明
startbtn.setContentAreaFilled(false);



2 输入框
//设置输入框透明 
		textfield.setOpaque(false);
// 设置输入框边框无
		textfield.setBorder(new EmptyBorder(0,0,0,0));



3 修改滚动条样式
重写BasicScrollBarUI
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.RenderingHints;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JScrollBar;
import javax.swing.plaf.basic.BasicScrollBarUI;

/**
 * 自定义滚动条UI
 * 
 * @author zsg
 */
public class DemoScrollBarUI extends BasicScrollBarUI {

	@Override
	protected void configureScrollBarColors() {
		// 把手
		// thumbColor = Color.GRAY;
		// thumbHighlightColor = Color.BLUE;
		// thumbDarkShadowColor = Color.BLACK;
		// thumbLightShadowColor = Color.YELLOW;

		// 滑道
		trackColor = Color.black;
		setThumbBounds(0, 0, 3, 10);
		// trackHighlightColor = Color.GREEN;
	}

	/**
	 * 设置滚动条的宽度
	 */
	@Override
	public Dimension getPreferredSize(JComponent c) {
		// TODO Auto-generated method stub
		c.setPreferredSize(new Dimension(5, 0));
		return super.getPreferredSize(c);
	}

	// 重绘滑块的滑动区域背景
	public void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) {
		Graphics2D g2 = (Graphics2D) g;
		GradientPaint gp = null;
		//判断滚动条是垂直的 还是水平的
		if (this.scrollbar.getOrientation() == JScrollBar.VERTICAL) {
			//设置画笔
			gp = new GradientPaint(0, 0, new Color(80, 80, 80),
					trackBounds.width, 0, new Color(80, 80, 80));
		}
		if (this.scrollbar.getOrientation() == JScrollBar.HORIZONTAL) {
			gp = new GradientPaint(0, 0, new Color(80, 80, 80),
					trackBounds.height, 0, new Color(80, 80, 80));
		}

		g2.setPaint(gp);
		//填充Track
		g2.fillRect(trackBounds.x, trackBounds.y, trackBounds.width,
				trackBounds.height);
		//绘制Track的边框
/*		 g2.setColor(new Color(175, 155, 95));
		 g2.drawRect(trackBounds.x, trackBounds.y, trackBounds.width - 1,
				trackBounds.height - 1);
				*/
		if (trackHighlight == BasicScrollBarUI.DECREASE_HIGHLIGHT)
			this.paintDecreaseHighlight(g);
		if (trackHighlight == BasicScrollBarUI.INCREASE_HIGHLIGHT)
			this.paintIncreaseHighlight(g);
	}

	@Override
	protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) {
		// 把绘制区的x,y点坐标定义为坐标系的原点
		// 这句一定一定要加上啊,不然拖动就失效了
		g.translate(thumbBounds.x, thumbBounds.y);
		// 设置把手颜色
		g.setColor(new Color(46, 46, 46));
		// 画一个圆角矩形
		// 这里面前四个参数就不多讲了,坐标和宽高
		// 后两个参数需要注意一下,是用来控制角落的圆角弧度
		// g.drawRoundRect(0, 0, 5, thumbBounds.height - 1, 5, 5);
		// 消除锯齿
		Graphics2D g2 = (Graphics2D) g;
		RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING,
				RenderingHints.VALUE_ANTIALIAS_ON);
		g2.addRenderingHints(rh);
		// 半透明
		g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
				0.5f));
		// 设置填充颜色,这里设置了渐变,由下往上
		// g2.setPaint(new GradientPaint(c.getWidth() / 2, 1, Color.GRAY,
		// c.getWidth() / 2, c.getHeight(), Color.GRAY));
		// 填充圆角矩形
		g2.fillRoundRect(0, 0, 5, thumbBounds.height - 1, 5, 5);
	}

	/**
	 * 创建滚动条上方的按钮
	 */
	@Override
	protected JButton createIncreaseButton(int orientation) {
		JButton button = new JButton();
		button.setBorderPainted(false);
		button.setContentAreaFilled(false);
		button.setBorder(null);
		return button;
	}

	/**
	 * 创建滚动条下方的按钮
	 */
	@Override
	protected JButton createDecreaseButton(int orientation) {
		JButton button = new JButton();
		button.setBorderPainted(false);
		button.setContentAreaFilled(false);
		button.setFocusable(false);
		button.setBorder(null);
		return button;
	}

	

}





JScrollPane scrollPane = new JScrollPane(chatText);
		//设置滚动条样式
		scrollPane .getVerticalScrollBar().setUI(new DemoScrollBarUI());
		scrollPane .setBounds(40, 330, 475, 110);
		// 将 JScrollPane背景设置透明
		scrollPane .setOpaque(false);
		scrollPane .getViewport().setOpaque(false);
                  //设置无边框
		scrollPane .setBorder(new EmptyBorder(0, 0, 0, 0));

  • 大小: 12.8 KB
分享到:
评论

相关推荐

    swing界面美化包

    在默认情况下,Swing组件的外观可能显得较为朴素,但通过一些特殊的技术,我们可以对其进行美化,使其更具吸引力。"swing界面美化包"就是这样一个工具,它可以帮助开发者轻松地改变Java应用的视觉风格。 Swing界面...

    java+swing漂亮软件界面+超酷+以及javaswing教程.7z

    "java+swing漂亮软件界面+超酷+以及javaswing教程.7z"这个压缩包文件显然包含了关于如何利用Java Swing创建出吸引人的、具有超酷效果的软件界面的资源和教程。 Java Swing 提供了一系列的组件,如JFrame,它是窗口...

    Java Swing 皮肤包

    本资源“Java Swing 皮肤包”包含了一系列预设的外观和感觉,可以改变Swing组件的视觉样式,使应用看起来更加个性化和专业。 1. **Java Swing 外观和感觉**: Java Swing 支持可替换的外观和感觉(LookAndFeel),...

    swing 日期选择控件

    在Java Swing中,日期选择控件(DatePicker)是用于用户交互,方便他们选择特定日期的组件。Swing本身并没有内置的DatePicker控件,但开发者通常会利用第三方库来实现这一功能。这里提到的"swing 日期选择控件"很...

    calendar_swing_java_character1wy_日历控件_

    在Java编程领域,Swing库提供...总的来说,"calendar_swing_java_character1wy_"是一个为Java Swing应用提供美化日历选择功能的组件,它的存在丰富了Java GUI开发的选择,使得开发者能够创建出用户体验更佳的应用程序。

    swing皮肤美化和附带.jar文件

    标题中的"swing皮肤美化"指的是通过更换Swing组件的外观样式,使得应用程序界面更加吸引人。Swing支持多种LookAndFeel,包括系统LookAndFeel(如Windows、Mac OS X)和Java自己的跨平台LookAndFeel,如...

    substance美化包java swing

    它提供了丰富的自定义选项,使得开发者能够轻松改变控件的样式,使应用程序看起来更加现代化、专业。Substance 包括了多种预定义的主题,比如商务风、金属质感、淡雅风格等,满足不同设计需求。 在压缩包 ...

    Java窗口美化包(substance和JTattoo)

    Java窗口美化包主要涉及到的是如何在Java Swing应用中创建具有吸引力和现代感的用户界面。在Java编程领域,Swing库被广泛用于构建图形用户界面(GUI),但其默认的外观可能显得较为朴素,不能满足所有开发者对于美学...

    java swing jTabbedPane 自定义UI(宽、高、放大、文本、颜色、间距) 简单易懂带注释可直接运行

    java swing jTabbedPane 自定义的U,包括(宽、高、点击放大、文本字体、背景颜色、选项卡间距等) 简单易懂带注释可直接运行

    java皮肤 java swing 程序皮肤

    Java 界面美化是通过自定义外观组件和布局管理器来实现的,以达到与操作系统或其他设计风格一致的效果。 在Java Swing中,我们可以使用LookAndFeel API 来改变程序的皮肤。LookAndFeel 是一种接口,允许开发者为...

    Java Swing之游戏设计3

    ### 自定义绘图:超越Swing控件的限制 尽管Swing提供了丰富的预定义组件,但在某些情况下,这些组件可能无法满足特定的美学需求或功能需求。此时,开发者可以利用`Graphics`类提供的绘图功能,直接在屏幕上绘制...

    令Swing风格更加美化的插件

    资源包"Swing风格美化"很可能包含了上述一些或全部的美化元素,例如定制的主题、组件样式、图标集等。使用这个资源,开发者可以轻松地将自己的Swing应用变得更加专业和引人注目。在实际应用中,只需按照提供的说明或...

    java 界面美化开源jar包

    在Java中,界面美化通常涉及到Swing、JavaFX等GUI框架的使用。 1. **Swing库的美化** Swing是Java的标准GUI库,提供了丰富的组件,如按钮、文本框、面板等。虽然Swing本身提供了基础的样式,但通过引入特定的jar包...

    Java目录树控件

    6. **美化界面**:使用Swing的`LookAndFeel`可以调整控件的样式,使其符合操作系统或应用的整体风格。此外,还可以自定义`TreeCellRenderer`来控制节点的显示样式,如图标、字体颜色等。 在压缩包中的`README.md`...

    widget:Java Swing Application的界面风格库(Look And Feel)

    在Swing中,"Look and Feel"(简称L&F)是决定应用程序界面外观和感觉的关键元素,它可以改变控件的样式、颜色、字体等视觉特性,以适应不同的操作系统或用户偏好。 1. **Look and Feel 概念**: Look and Feel 是...

    Java窗口美化包(substance.jar和JTattoo)

    总结来说,Java窗口美化包(substance.jar和JTattoo)是Java GUI开发中的重要工具,它们为Swing应用程序提供了丰富多样的界面样式,提升了用户体验,并且集成简单,使用方便。开发者可以根据自己的项目需求选择合适的...

    窗体美化substance.jar

    Substance不仅改变了控件的视觉效果,还对一些Swing组件进行了增强,例如按钮、滑块、表格等,增加了丰富的动画效果,使得交互更为生动和自然。 3. **可定制性**: 对于那些预设的主题不满意或者想要更个性化的...

    经过包装,界面很漂亮的各种控件(vc++)

    压缩包中的“Swing_demo”文件名暗示这可能是一个示例项目,使用了Swing库(尽管Swing通常是Java语言中的UI库),或者是作者借用Swing这个概念来表示他们创建的控件具有类似的功能性或灵活性。在VC++中,开发者可能...

    SwingTemplate:swing 控件,常用的,扩展的

    SwingTemplate是一个基于Java Swing库的扩展框架,它旨在提供一套丰富、美观且易于使用的控件,以提升Java桌面应用的界面设计和用户体验。Swing是Java标准库中用于构建图形用户界面(GUI)的工具包,而SwingTemplate...

    Java动画、图形和极富客户端效果-src

    通过CSS样式表,开发者可以轻松地对UI进行美化。JavaFX的Scene Graph模型允许开发者创建复杂的布局和层次结构,使得动态更新和渲染变得高效。此外,JavaFX的动画系统非常强大,支持关键帧动画、缓动函数以及时间线,...

Global site tag (gtag.js) - Google Analytics