今天宠物迷的小编给各位宠物饲养爱好者分享java 设置透明度的宠物知识,其中也会对java如何设置透明窗体(java如何把按钮设置为透明)进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!
1打开Java开发工具Eclipse软件,依次选择“文件”、“新建”、“项目”,在“新建项目”窗口中选择“Java项目”,然后点击“下一步”按钮。 2在出现的窗体中的“项目名称”后自定义输入项目名,然后点击“完成”按钮完成项目的创建。 3右击创建的项目,在右键列表中依次选择“新建”、“类”,在“新建类”窗体中输入自定义类名,勾选相应复选框,点击“完成”按钮完成类的创建。 4首先,做一些初始化窗体的工作,导入javax.swing.JFrame类,实现JFrame的继承,初始化构造方法头并在main方法内实例化此类以便做测试。 5下面,在构造方法中创建窗体,导入javax.swing.JButton类,在窗体内加入按钮,保持按钮默认的布局方式,最后设置窗体显示,运行程序查看初始效果。 6运行Java程序后,将出现初始化窗体界面,用户需关闭窗体做下一步代码的编写。 7添加按钮BTN的ActionListenr()单击事件,在出现的错误中点击错误处,然后自动导入ActionListener类,但是仍然出现错误,用户需再次点击错误处以添加必要的方法实现。 8当用户解决两次错误后,系统自动导入了所需包和加入了所需单击事件的必要方法。 9新建setOpacity()方法并在按钮的单击事件中调用此方法,然后在此类中作为属性成员加入JSlider滑块控件。 10在新建的setOpacity()方法中添加如下代码,设置dialog窗体的大小、位置、大小不可改变等属性,用户可自定义设置属性。 11创建JLabel,添加slider滑块的滑动事件,并在事件中加入方法slider(),当然此方法需要新建,待会再新建,让我们先把setOpacity()方法中的代码添加完成。 12继续在setOpacity()方法中添加代码,在窗体dialog中加入panel控件,再将lable和slider加入到panel中。 13在方法slider()中添加代码,获取slider的值以改变透明度值,设置鼠标移入滑块时的鼠标指针样式。 14运行Java程序,并点击按钮,然后出现调整透明度的窗体,用户就可以设置窗体透明度。
JOptionPane.showMessageDialog()
public static void showMessageDialog(Component parentComponent,
Object message,
String title,
int messageType)
throws HeadlessException调出对话框,它显示使用由 messageType 参数确定的默认图标的 message。
参数:
parentComponent - 确定在其中显示对话框的 Frame;如果为 null 或者 parentComponent 不具有 Frame,则使用默认的 Frame
message - 要显示的 Object
title - 对话框的标题字符串
messageType - 要显示的消息类型:ERROR_MESSAGE、INFORMATION_MESSAGE、WARNING_MESSAGE、QUESTION_MESSAGE 或 PLAIN_MESSAGE
看你是对什么设置背景色了,比如对于 this.getContentPane().setBackground(Color.blue); 是没用的。因为Swing中JFrame的层次问题,具体你可以自己去搜搜看。大概就是Pane上面还有一层其他的东东,然后这上面才是你自己添加的比如按钮啊、标签之类的。 设置不了背景色,我认为一种解决方案是: 假设一个场景,你要做一个小说阅读器的界面,小说阅读器的背景要设置为蓝色,那么你就这样, JPanel panel = new JPanel(); this.getContentPane().add(panel); panel.setBackground(Color.blue); //然后在panel上添加其他组件
第一首先在电脑上下载好java的编程软件。 然后在点击打开命令框。 2 第二然后在计算机上右键打开属性。 在属性对话框上点击高级。 3 第三然后再点击下面的环境变量。 4 第四然后在环境变量的窗口下面的系统变量中。 点击选中path。 5 第五然后再点击编辑。 再点击新建,将下载好的java编程软件的保存路径添加到上面,在点击确定。 注意:不要随意删除path中的东西。 6 第六然后在命令框窗口中输入java。 再按回车键,要是会出现一大堆命令,说明java的运行环境弄好。
//刚给人写的小例子 -_-!~.... 顺便发下
//要教程的上网直接搜swing教程 一堆一堆的
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import javax.swing.*;
import javax.swing.text.MaskFormatter;
public class CodeTest extends JFrame {
private static final long serialVersionUID = 1L;
private JFormattedTextField formatField = null;
private JButton ba = null;
private String pattern = "AAAAA-AAAAA-AAAAA-AAAAA";
private JLabel code = new JLabel("注册码: ");
private JLabel input = new JLabel("序列号: ");
private JTextField codeField = new JTextField();
private JLabel rel = new JLabel();
public CodeTest(){
init();
}
public void init(){
MaskFormatter mft = CodeTest.getFormatter(pattern);
mft.setPlaceholderCharacter('X');
formatField = new JFormattedTextField();
formatField = new JFormattedTextField();
mft.install(formatField);
this.setBounds(200, 200, 240, 240);
this.setResizable(false);
this.setLayout(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
formatField.setBounds(30, 30, 180, 25);
ba = new JButton("注册");
ba.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(formatField.getText().length() >= 1) {
}
String text = formatField.getText();
long vlong = getCode(text);
code.setText("注册码: (" + vlong + ")");
if((vlong + "").equals(codeField.getText())){
rel.setText("注册成功!");
System.exit(0);
} else {
rel.setText("注册失败!");
}
}
});
codeField.setBounds(30, 85, 180, 25);
code.setBounds(30, 60, 180, 25);
ba.setBounds(30, 125, 180, 25);
rel.setBounds(30, 155, 100, 25);
input.setForeground(Color.RED);
code.setForeground(Color.RED);
rel.setForeground(Color.RED);
input.setBounds(30, 5, 100, 25);
this.add(rel);
this.add(codeField);
this.add(input);
this.add(code);
this.add(ba);
this.add(formatField);
ba.setDefaultCapable(true);
this.setVisible(true);
}
public static void main(String[] args) {
new CodeTest();
}
public static MaskFormatter getFormatter(String pattern){
try {
return new MaskFormatter(pattern);
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
public long getCode(String text){
char [] chs = text.toCharArray();
long vlong = 0;
for(char c: chs){
if(c != '-'){
vlong += 199 * (int)c;
}
}
return vlong;
}
}
登录的窗口主界面JFrame,调用getContentPane(),获取到面板。
JPanel J=(JPanel)this.getContentPane();
创建一个带图标的标签。
JLabel jb=new JLabel(new ImageIcon("xx.jpg"));
添加该标签,并设置为窗口的大小。
J.add(jb);
jb.setBounds(0, 0, this.getWidth(), this.getHeight());
如果在JFrame中还有其他的覆盖于其上的JPanel,需要将其设为透明,
setOpaque(true);
注:代码为JFrame的构造函数中完成,其This指代窗口当前实例。
设成别的颜色很简单啊,控件属性--外观---BackColor
设成透明你可以试试css样式的background-color:transparent;
.transButton{background-color:transparent;}
有各种 Border 可以写的。。。。。。。。。。。
javax.swing.border
Interface Border
All Known Implementing Classes:
AbstractBorder, BasicBorders.ButtonBorder, BasicBorders.FieldBorder, BasicBorders.MarginBorder, BasicBorders.MenuBarBorder, BasicBorders.RadioButtonBorder, BasicBorders.RolloverButtonBorder, BasicBorders.SplitPaneBorder, BasicBorders.ToggleButtonBorder, BevelBorder, BorderUIResource, BorderUIResource.BevelBorderUIResource, BorderUIResource.CompoundBorderUIResource, BorderUIResource.EmptyBorderUIResource, BorderUIResource.EtchedBorderUIResource, BorderUIResource.LineBorderUIResource, BorderUIResource.MatteBorderUIResource, BorderUIResource.TitledBorderUIResource, CompoundBorder, EmptyBorder, EtchedBorder, LineBorder, MatteBorder, MetalBorders.ButtonBorder, MetalBorders.Flush3DBorder, MetalBorders.InternalFrameBorder, MetalBorders.MenuBarBorder, MetalBorders.MenuItemBorder, MetalBorders.OptionDialogBorder, MetalBorders.PaletteBorder, MetalBorders.PopupMenuBorder, MetalBorders.RolloverButtonBorder, MetalBorders.ScrollPaneBorder, MetalBorders.TableHeaderBorder, MetalBorders.TextFieldBorder, MetalBorders.ToggleButtonBorder, MetalBorders.ToolBarBorder, SoftBevelBorder, StrokeBorder, TitledBorder
import javax.swing.* ;
public class baiduzhidao1 {
public static void main(String args[]){
ImageIcon img = new ImageIcon("1.jpg"); /*负责显示图像的JLable对象j1*/
JLabel jl = new JLabel(img);
JPanel j = new JPanel() ; /*在JFrame上add上面板j*/
JFrame jf = new JFrame() ;
jf.setContentPane(j) ;
j.add(jl) ; /*在面板j上add上JLable对象j1*/
JPanel jjj = new JPanel() ; /*创建一个透明的面板放在JLable对象j1上负责放控件,此例中放置了一个按钮*/
jl.add(jjj) ;
jjj.setSize(200, 100) ; /*这里注意要设置大小*/
jjj.setOpaque(false) ; /*将负责放置控件的面板设置成透明,详细请查API*/
jjj.add(new JButton("确定")) ; /*添加按钮*/
jf.setVisible(true) ;
jf.setSize(500, 300) ;
}
}
容器从顶层开始顺序如下:
jf(JFrame对象实例) --> j (JPanel对象实例,无须设置透明) --> j1(JLable对象实例,负责显示图片)
--> jjj(JPanel对象实例,负责放置控件,需要设置成透明才不会让自身的底色覆盖了上层图片)
要在JFrame上添加背景图片,常见做法是加在layeredPane上面,并将contentPane设置成透明的即可。 // 将图片添加到layeredPane ImageIcon img = new ImageIcon("steve.jpg"); JLabel imgLabel = new JLabel(img); frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE)); imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight()); // 将contentPane设置成透明的
本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“java如何设置透明窗体”