今天简单的在网上查看了关于将JButton设置为透明的相关技术。主要的目的是为在按钮上添加一个图片而考虑的。
下面我给出两种方式来解决,这个仅供大家参考。同时大家也可以提出疑问一起讨论
第一种方法:
submitButton = new JButton();
submitButton.setPreferredSize(new Dimension(80, 20));
/*****************************************************/
Color c = new Color(0,0,255);//背影颜色随便设任意值,只起占位作用。
submitButton.setBackground(c);
submitButton.setOpaque(false); //设置背景透明
/*****************************************************/
ImageIcon icon = new ImageIcon("images/insert.jpg");
submitButton.setIcon(icon);
第二种方法:
submitButton = new JButton();
submitButton.setPreferredSize(new Dimension(80, 20));
ImageIcon icon = new ImageIcon("images/insert.jpg");
submitButton.setIcon(icon);
submitButton.setContentAreaFilled(false); //设置按钮透明
第二种方法较为简单,但是大家要注意API中对setContentAreaFilled(boolean f)方法做了如下解释:
设置 contentAreaFilled 属性。如果该属性为 true,则按钮将绘制内容区域。如果希望有一个透明的按钮,比如只是一个图标的按钮,那么应该将此属性设置为 false。不要调用 setOpaque(false)。contentAreaFilled 属性的默认值为 true。
- 大小: 14.6 KB
分享到:
相关推荐
本文将详细介绍如何正确地设置`JButton`的透明度,并解释为什么不应使用`setOpaque(false)`方法。 ### 一、为什么不能使用`setOpaque(false)`? `setOpaque(false)`方法主要用于改变一个Swing组件是否应该被渲染为...
2. **图形渲染**:介绍如何改变组件的透明度来实现淡入淡出效果,这可能涉及Java的Graphics2D API。 3. **事件监听**:讲解如何添加MouseListener到JButton并响应鼠标事件,例如mouseEntered和mouseExited。 4. **...
Java Swing并不直接支持完全透明的按钮,但是我们可以通过设置按钮的背景色为`Color.TRANSLUCENT`来实现部分透明效果。 ```java JButton button = new JButton(); button.setBackground(new Color(0, 0, 0, 0)); //...
因此,即使`JScrollPane`的背景被设置为透明,它的子组件依然会保留默认的不透明背景,从而导致整个`JScrollPane`看起来并不透明。 ### 如何实现 `JScrollPane` 的完全透明 为了实现`JScrollPane`的完全透明效果,...
这个例子中,`TransparentButton`类继承自`JButton`,并设置了不透明和内容区域不填充,然后在`paintComponent()`方法中使用了`AlphaComposite`来实现透明效果。 通过以上知识点,我们可以创建出具有Swing透明切换...
在本例中,我们将通过继承`Border`接口并实现其方法来定义一个名为`RoundBorder`的类。 ```java public class RoundBorder implements Border { public Insets getBorderInsets(Component c) { return new Insets...
- 将带有透明效果的图像设置为按钮的图标。 4. **主函数**: - 创建`JFrame`实例,并设置其大小及关闭行为。 - 创建`Test_JFrame2`实例,并将其添加到面板中。 #### 示例代码详解 ```java public class Test_...
在`sliderChanged()`方法中,获取`JSlider`的当前值,然后使用`setOpacity()`方法设置窗体的透明度。`setOpacity()`方法接收一个浮点数参数,范围在0.0(完全透明)到1.0(完全不透明)之间。 同时,为了美观,可以...
"程序开发常用图标PNG高清透明"这一资源集合,为开发者提供了一系列高质量的PNG图标,适用于多种编程环境,如VC(Visual C++)、Delphi、C#、Java和VB(Visual Basic)等。 PNG(Portable Network Graphics)是一种...
为了实现窗口的半透明效果,一种常用的技术是通过获取当前屏幕的截图作为背景,并将其绘制到希望呈现半透明效果的窗口上。在Java中,这可以通过`java.awt.Robot`类来完成。 **代码示例**: ```java public void ...
在这个例子中,我们将使用JNA来调用操作系统级别的API来设置窗口的透明度。 #### 三、代码解析 ##### 1. 导入必要的库 ```java import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container...
2. 自定义组件类:扩展了标准的GUI组件,如JButton或Label,添加了透明背景的支持。 3. UI布局:定义了控件的位置和大小,可能使用了不同的布局管理器。 4. 事件处理:处理用户交互,如点击事件,可能包含静态方法来...
//设置窗体透明 JPanel p=new JPanel(){ public void paintComponent(Graphics g){//重写paintComponent super.paintComponent(g);//继承的绘制组件方法 Graphics2D gg=(Graphics2D)g; if...
图片可以是任何形状,一旦覆盖事件知道鼠标是悬停在透明像素还是不透明像素上。 例如,我制作了三个不同的图像来代表三个按钮状态: 常规的; 悬停; 和 点击。 单击时,按钮会在控制台中打印文本,确认类似按钮...
为了使背景图像完全显示出来,需要将`JPanel`设置为透明: ```java panel.setOpaque(false); ``` - **注意**:如果希望背景图像与其他非透明组件(如按钮)结合使用,可能需要对这些组件也进行透明度设置或调整...
在本例中,我们使用了分层窗格来添加背景图片,并将其设置为最底层,以便其他组件可以显示在其上面。 6. 事件处理:在 Java 中,事件处理是指对用户交互事件的响应。常见的事件包括按钮点击事件、鼠标移动事件、...
2. **使用`ImageIcon`和`JLabel`**:另一种方法是创建一个与`JFrame`大小相同的`JLabel`,并将其设置为`ImageIcon`作为背景。 本示例采用第一种方法,即通过覆盖`paintComponent`方法来实现背景图片的显示。 #### ...
在设置 JLabel 之后,需要将内容窗格转化为 JPanel,否则不能使用 setOpaque() 方法来使内容窗格透明。然后,设置内容窗格的布局管理器为 FlowLayout,添加一个 JButton 组件到内容窗格中。 接下来,需要将背景图片...
- 将读取到的图片设置为JPanel的背景,这需要重写`paintComponent(Graphics g)`方法,在其中调用`g.drawImage()`绘制图片。 2. **设置布局管理器** - 为了确保背景图片组件能填充整个JFrame,我们需要使用...