`

Swing 图像旋转,透明度,渐变色设置示例

 
阅读更多

package swing;

import java.awt.AlphaComposite;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Composite;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.Shape;
import java.awt.geom.AffineTransform;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

//import com.sun.awt.AWTUtilities;

 

public class demo extends JPanel
{
   
    public demo()
    {
        //super();
    setVisible(true);
    setBackground(Color.BLACK);
    setForeground(Color.WHITE);
    setBounds(0, 0, 600, 600);
    }

    public static void main(String[] args)
    {
        JFrame f = new JFrame();  
       
     //   AWTUtilities.setWindowOpacity(f, 0.8f);
             f.setSize(1024, 768); 
            f.add(new demo()); 
             f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
            f.setVisible(true);   
    }
   
    @Override
    public void paint(Graphics g)
    {
        super.paint(g);
        Graphics2D g2d=(Graphics2D)g;
        int width = getWidth()/2;
        int height = getHeight()/2;
        g2d.setStroke(new BasicStroke(6));//粗细
        g2d.setColor(Color.red);
       
        g2d.drawArc (5, 5, 500, 750, 45, 90+45);  //圆弧
        
       AlphaComposite alphaComposite=AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.42f);
       g2d.setComposite(alphaComposite);//透明度
      
       AffineTransform affineTransform=new AffineTransform();
       affineTransform.setToTranslation(0, 0);
       affineTransform.setToRotation(Math.PI/10);//旋转
       g2d.transform(affineTransform);
      
       ImageIcon imageIcon= new ImageIcon(getClass().getResource("green1.jpg"));
       g2d.drawImage(imageIcon.getImage(),0,0,null);//背景
      
       Paint  paint=new GradientPaint(0, 0, Color.RED, 222,222, Color.green, true);//渐变
    g2d.setPaint(paint);
    g2d.fillRoundRect(188, 188, 300, 300, 33, 33);//矩形

       g2d.setClip(50,50,300, 300);
       g2d.setColor(Color.blue);
       g2d.fillPolygon(new int[] {0,200,400},new int[] {333,0,333},3);//三角形
       //在矩形范围内画三角形 形成梯形 
      
    }
}

 

分享到:
评论

相关推荐

    JFrame边框阴影效果,窗口透明,组件不透明

    首先,要实现`JFrame`的透明,我们需要设置`JFrame`的透明度。Java提供了`setOpacity()`方法来调整窗口的透明度。这个方法接受一个介于0.0(完全透明)到1.0(完全不透明)之间的浮点数参数。例如: ```java frame....

    JAVA7新特性透明窗体代码

    这个方法允许开发者设置窗口的不透明度,参数范围从0.0(完全透明)到1.0(完全不透明)。例如,你可以这样设置一个窗口为50%的透明度: ```java Window window = new JFrame(); window.setOpacity(0.5); ``` 二、...

    Java编程技巧篇.doc

    - `JFrame`或`JWindow`的`setOpaque(false)`方法可以使其不透明,然后通过`setAlpha()`设置透明度级别。 7. **给JTextPane加上底图**: - 可以使用`javax.swing.ImageIcon`加载图像,并将其作为背景应用到`...

    pngbutton按钮

    PNG格式是一种无损压缩的图像文件格式,支持24位色彩和透明度,使得PNGButton能够创建出具有独特视觉效果的按钮。 在GUI设计中,PNGButton的使用可以增强应用或网站的视觉吸引力。设计师通常会利用图像编辑软件(如...

    JAVA图形处理培训资料

    Java2D提供了高级的绘图功能,如路径操作、渐变填充、抗锯齿和透明度设置,可以实现复杂的图形效果。 4. **Graphics2D**:作为Java2D的核心类,`java.awt.Graphics2D`扩展了Graphics,提供了更多的2D绘图方法,如...

    JAVA画图形学(文档+源代码).zip

    4. **颜色与填充**:讨论如何使用颜色,包括纯色、渐变色、图案填充等。 5. **变换**:介绍平移、旋转、缩放等几何变换,并展示如何在Java中应用这些变换。 6. **文本渲染**:讲述如何在图形上添加文本,包括字体...

    java源码:Java绘制图片火焰效果.rar

    在绘制火焰时,可能通过调整Alpha值来改变火焰的透明度,使得火焰有渐变的效果,更加逼真。 6. **BufferedImage类**: `java.awt.image.BufferedImage`是一个内存中的图像,可以被用于存储和操作图像数据。开发者...

    Java实现移动的遮照效果.rar

    - Java的Graphics2D类允许设置颜色的透明度。使用`setComposite(AlphaComposite)`方法可以改变绘制的透明度,从而实现遮照效果的渐变。 5. **事件监听**: - 可以添加鼠标或键盘监听器,使得遮照效果响应用户的...

    FilthyRichClients.pdf

    - **概念**:`AlphaComposite`类提供了多种组合模式,用于处理图像中的透明度。其中最重要的两种是`SRC_OVER`和`DST_IN`。 - **SRC_OVER**:表示源图像覆盖在目标图像之上时的合成规则。这种模式最常用,可以实现半...

    DrawTest.rar 画刷 测试

    画刷对象通常有多种类型,可以是纯色、渐变色、纹理(图像)或图案,开发者可以通过选择不同的画刷来实现丰富的视觉效果。 1. **纯色画刷**:这是最基础的画刷类型,用于填充单色。在代码中,我们可以指定RGB或ARGB...

    设置窗体颜色.rar

    - 透明窗体:某些编程环境支持设置窗体的透明度,如WinForms的`Form.TransparencyKey`或Java的`setOpaque(false)`。 7. **性能考虑** - 频繁改变窗体颜色可能会影响程序性能,尤其是对大量或大尺寸窗体操作时,需...

    JFreeChat学习

    4. **设置柱状图外观**:可以调整柱子的颜色、宽度、透明度等属性,以及添加阴影效果。 5. **绘制图表**:最后,将图表渲染到`BufferedImage`或者直接显示在`JFrame`上。 ### 3. 饼图的创建 饼图用于显示部分与...

    introduction Java 2D(part 1)

    6. **透明度控制**:对透明度的控制较为笨拙,不易实现复杂的视觉效果。 #### 三、Java 2D 基础概念 - **坐标系统**:Java 2D 使用像素作为单位,最小的分辨率单位为一个像素。坐标原点位于组件左上角,X 轴向右为...

    Java仿千千静听音乐播放器源代码.doc

    `paintComponent()`使用`Graphics2D`对象进行渲染,通过调整透明度(`alpha`)和颜色,根据`exited`和`pressed`状态绘制复杂的边框渐变效果。这里的算法根据高度`height`动态计算颜色值,创建一种立体感和深度的视觉...

    Java实现类Windows导航栏

    - `JPanel`:作为基础容器,用于放置其他组件,例如`JRadioButton`和`JCheckBox`,并可自定义背景色和透明度。 - `JRadioButton` 和 `ButtonGroup`:用于创建一组互斥的选择项,类似Windows导航栏中的各个选项。 ...

    RoundCorner:如何绘制RoundCorner图片的示例

    这个示例将创建一个500x500像素的透明背景图片,其中包含一个480x480像素的圆角矩形,圆角半径为30像素,并将其保存为PNG图像。 在"RoundCorner-master"这个压缩包中,很可能包含了类似这样的示例代码,通过不同的...

    JFreeChart柱状图资料

    JFreeChart允许你对柱状图进行高度定制,包括改变颜色、添加渐变色、调整标签样式、修改轴的刻度线和标签、设置图例样式等。此外,还可以通过`Renderer`接口来实现更复杂的定制,比如设置柱状图的透明度和宽度。 5...

    jfreeChar相关jar包

    2. **色彩和渐变**:支持颜色操作,如混合、渐变,以及色彩模式和透明度的设置。 3. **文本处理**:包含文本布局和渲染的功能,支持多种字体和排版效果。 4. **表格组件**:提供了一个基本的表格组件,可以用于显示...

    完成通过鼠标在视图窗口内绘制任意形状的线.rar_画刷

    "画刷"在图形编程中是指用于填充形状的工具,它可以设置填充的颜色、图案和透明度。画刷的类型和颜色选择极大地影响了图形的视觉效果。例如,你可以使用实心画刷来填充单色,或者使用渐变画刷来创建色彩过渡的效果。...

    Java中关于多媒体方面的API使用的研究

    - **`java.awt.AlphaComposite`**:用于定义透明度和混合模式,使得图形可以有透明效果。 - **`java.awt.BasicStroke`**:定义线的样式,包括宽度、端点和连接处的样式。 - **`java.awt.Color`**:表示颜色的类,...

Global site tag (gtag.js) - Google Analytics