Ⅰ java swing如果做一个背景图片。如何在图片上显示控件
如果是背景图片的话,
重写paintComponent(Graphics g)这个方法,可以生成
protected void paintComponent(Graphics g) {
g.drawImage(图片对象.getImage(), 0, 0, this);
super.paintComponent(g);
}
.
如果还在要在图片上显示控件,可以考虑JLayeredPane
在这个上面分层放控件。
用label放一张图片,与窗体大小一样。放在最底层,控件放在上面一层。
Ⅱ Java Swing 怎么自定义界面背景图片
在java swing中需要为容器添加自定义图片或者背景图片。提兄大供两种简单的解枣尘氏决方案,一种利用JPanel,另一种利用JLabel,代码如下:
1、JPanel(源代码)
packageoo;
importjava.awt.Graphics;
importjava.awt.Image;
importjava.io.File;
importjavax.swing.ImageIcon;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
publicclassDrawing{
JFramejframe=newJFrame();
publicstaticJPanelGImage=null;
publicDrawing(){
initFrame();
}
//初始化窗口
publicvoidinitFrame(){
//利用JPanel添加背景图片
GImage=newJPanel(){
protectedvoidpaintComponent(Graphicsg){
ImageIconicon=newImageIcon("image\benbenla.jpg");
Imageimg=icon.getImage();
g.drawImage(img,0,0,icon.getIconWidth(),
icon.getIconHeight(),icon.getImageObserver());
jframe.setSize(icon.getIconWidth(),icon.getIconHeight());
}
};
jframe.setTitle("测试背景图片");
jframe.add(GImage);
jframe.pack();
jframe.setVisible(true);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
publicstaticvoidmain(String[]args){
newDrawing();
}
}
2、JLabel源代码
packageswing.draw;
importjava.awt.Image;
importjavax.swing.ImageIcon;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
/**利用JLabel来构建图片*/
publicclassDrawing2{
JLabeljlpic=newJLabel();
JFramejframe=newJFrame();
publicDrawing2(){
init1Frame();
}
publicvoidinit1Frame(){
ImageIconicon=newImageIcon("image\benbenla.jpg");
凳散icon.setImage(icon.getImage().getScaledInstance(icon.getIconWidth(),
icon.getIconHeight(),Image.SCALE_DEFAULT));
System.out.println(icon.getIconHeight()+""+icon.getIconWidth());
jlpic.setBounds(0,0,1366,768);
jlpic.setHorizontalAlignment(0);
jlpic.setIcon(icon);
jframe.setSize(1366,768);
jframe.add(jlpic);
jframe.pack();
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.setVisible(true);
}
publicstaticvoidmain(Stringargs[]){
newDrawing2();
}
}
添加控件:
jlpic.setIcon(icon);
Containerc=newContainer();
JLabeluser=newJLabel("用户:");
JLabelpassword=newJLabel("密码:");
JTextFieldtxf_userName=newJTextField();
JPasswordFieldpwd_password=newJPasswordField()
{
publicvoidpaste(){
UIManager.getLookAndFeel().provideErrorFeedback(this);
}
};
user.setBounds(200,25,50,25);
password.setBounds(200,52,50,25);
txf_userName.setBounds(300,25,150,25);
pwd_password.setBounds(300,52,150,25);
c.add(user);
c.add(txf_userName);
c.add(password);
c.add(pwd_password);
c.add(jlpic);
jframe.setSize(1366,768);
//jframe.add();
jframe.add(c);
Ⅲ JAVA代码添加背景图片。更改背景颜色!awt或swing!很简单!越简单越好!
设置颜色:
把pan-pan6的Background设为Null,这样他们就变为透明的了,以后只需要改变inquestFrame的颜色就可以改变全部的颜色,代码如下:
//设置整体布局
JPanelpan=newJPanel();
pan.setLayout(newGridLayout(6,1));
pan.add(pan1);
pan.add(pan2);
pan.add(pan3);
pan.add(pan4);
pan.add(pan5);
pan.add(pan6);
pan.setBackground(null);
pan1.setBackground(null);
pan2.setBackground(null);
pan3.setBackground(null);
pan4.setBackground(null);
pan5.setBackground(null);
pan6.setBackground(null);
r1.setBackground(null);
r2.setBackground(null);
inquestFrame.setBackground(Color.LIGHT_GRAY);
inquestFrame.setContentPane(pan);
inquestFrame.setSize(300,250);
inquestFrame.setVisible(true);
设置图片需要改的比较多,自己比较那不一样吧:
importjava.awt.Graphics;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.net.URL;
importjavax.swing.ButtonGroup;
importjavax.swing.ImageIcon;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JRadioButton;
importjavax.swing.JTextField;
publicclassInquest{
JFrameinquestFrame;
JLabellab1,lab2,lab3,lab4,lab5,lab6;
JTextFieldtext1,text2,text4,text5,text6;
JRadioButtonr1,r2;
JButtoninqButton;
publicInquest(){
inquestFrame=newJFrame("教育经历管理系统-查询窗口");
MyPanelpan1=newMyPanel();
lab1=newJLabel("请输入编码:");
text1=newJTextField(10);
inqButton=newJButton("查询");
inqButton.addActionListener(newButtonHandler());
pan1.add(lab1);
pan1.add(text1);
pan1.add(inqButton);
MyPanelpan2=newMyPanel();
lab2=newJLabel("姓名:");
text2=newJTextField(10);
pan2.add(lab2);
pan2.add(text2);
MyPanelpan3=newMyPanel();
lab3=newJLabel("性别:");
r1=newJRadioButton("男");
r2=newJRadioButton("女");
//把两个单选按钮放到一个群组中,保持二选一
ButtonGroupgroup=newButtonGroup();
group.add(r1);
group.add(r2);
pan3.add(lab3);
pan3.add(r1);
pan3.add(r2);
MyPanelpan4=newMyPanel();
lab4=newJLabel("单位:");
text4=newJTextField(10);
pan4.add(lab4);
pan4.add(text4);
MyPanelpan5=newMyPanel();
lab5=newJLabel("职位:");
text5=newJTextField(10);
pan5.add(lab5);
pan5.add(text5);
MyPanelpan6=newMyPanel();
lab6=newJLabel("年龄:");
text6=newJTextField(10);
pan6.add(lab6);
pan6.add(text6);
//设置整体布局
MyPanelpan=newMyPanel();
pan.setLayout(newGridLayout(6,1));
pan.add(pan1);
pan.add(pan2);
pan.add(pan3);
pan.add(pan4);
pan.add(pan5);
pan.add(pan6);
pan.setBackground(null);
pan1.setBackground(null);
pan2.setBackground(null);
pan3.setBackground(null);
pan4.setBackground(null);
pan5.setBackground(null);
pan6.setBackground(null);
r1.setBackground(null);
r2.setBackground(null);
MyPanelpan0=newMyPanel();
pan0.setPreferredSize(pan.getPreferredSize());
pan0.setLayout(null);
pan.setBounds(0,0,pan.getPreferredSize().width,pan.getPreferredSize().height);
URLurl=Inquest.class.getResource("Winter.jpg");
ImageIconimg=newImageIcon(url);
JLabellab=newJLabel(img);
lab.setBounds(0,0,img.getIconWidth(),img.getIconHeight());
pan0.add(pan);
pan0.add(lab);
inquestFrame.setContentPane(pan0);
inquestFrame.pack();
inquestFrame.setVisible(true);
}
{
publicvoidpaint(Graphicsg){
paintChildren(g);
}
}
publicvoidsetBack(){
((JPanel)inquestFrame.getContentPane()).setOpaque(false);
//Winter.jpg这个图片的位置要跟当前这个类是同一个包下
URLurl=Inquest.class.getResource("Winter.jpg");
ImageIconimg=newImageIcon(url);
JLabelbackground=newJLabel(img);
inquestFrame.getLayeredPane().add(background,newInteger(Integer.MIN_VALUE));
background.setBounds(0,0,img.getIconWidth(),img.getIconHeight());
}
{
publicvoidactionPerformed(ActionEvente){
//生成SQL语句
Strings="select*frominformationwhereid="+"'"+text1.getText()+"'";
Stringdriver="sun.jdbc.odbc.JdbcOdbcDriver";
Stringurl="jdbc:odbc:test";
//DBdb=newDB(driver,url,"sa","");
//ResultSetrs=db.query(s);
//try{
//while(rs.next()){
//text2.setText(rs.getString(2));
//Stringsex=rs.getString(3);
//if(sex.trim().equals("男"))
//r1.setSelected(true);
//else
//r2.setSelected(true);
//
//text4.setText(rs.getString(4));
//text5.setText(rs.getString(5));
//text6.setText(rs.getString(6));
//}
//}catch(Exceptione2){
//e2.printStackTrace();
//}
}
}
publicstaticvoidmain(Stringargs[]){
newInquest();
}
}