2016-07-10 21:55连丽芳 客户经理
不知道你怎么加的。加背景图有很多种办法:
- 加一个 JLabel,然后在 JLabel 上添加图片;
- 直接重写 paint 方法,然后用 drawImage(Image src, int x, int y, int width, int height) 方法画上去。
最大化的时候实际上是触发了窗口事件,添加窗口监听器,然后重写 windowResized() 方法,一旦窗口改变大小就重新计算尺寸,并调用 repaint 方法重绘。
================================= 给你一个例子 =================================
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.Image;
import java.awt.event.WindowEvent;
class BackgroundPanel extends JPanel {
private Toolkit tk = Toolkit.getDefaultToolkit();
private Image backgroundImage;
private JButton btnExit = new JButton("Exit");
public BackgroundPanel (String imgFile) {
backgroundImage = tk.createImage(imgFile);
setLayout(null);
btnExit.setBounds(10, 10, 100, 25);
add(btnExit);
}
@Override public void paint (Graphics g) {
g.drawImage(backgroundImage, 0, 0, getWidth(), getHeight(), this);
paintComponents(g);
}
}
class DemoFrame extends JFrame {
public DemoFrame () {
super("Demo");
String fileName = null;
JFileChooser fileChooser = new JFileChooser();
fileChooser.setDialogTitle("请选择一张背景图片");
fileChooser.setFileFilter(new FileNameExtensionFilter("图片文件(*.bmp, *.gif, *.jpg, *.jpeg, *.png)", "bmp", "gif&qu梗厂盾断墉登堕券乏猾ot;, "jpg", "jpeg", "png"));
if (fi......余下全文>>
2016-07-10 21:49齐文生 客户经理
给窗体添加了背景,不会影响往背景上拖按钮 标签的。
添加背景代码如下:
一个例子:
import java.awt.FlowLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class bj {
private JFrame frame = new JFrame("背景图片测试");
private JPanel imagePanel;
private ImageIcon background;
public static void main(String[] args) {
new bj();
}
public bj() {
background = new ImageIcon("C:\\Users\\xin.wen\\Pictures\\2.jpg");// 背景图片
JLabel label = new JLabel(background);// 把背景图片显示在一个标签里面
// 把标签的大小位置设置为图片刚好填充整个面板
label.setBounds(0, 0, background.getIconWidth(),
background.getIconHeight());
// 把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明
imagePanel = (JPanel) frame.getContentPane();
imagePanel.setOpaque(false);
// 内容窗格默认的布局管理器为BorderLayout
imagePanel.setLayout(new FlowLayout());
imagePanel.add(new JButton("测试按钮"));
frame.getLayeredPane().setLayout(null);
// 把背景图片添加到分层窗格的最底层作为背景
frame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(background.getIconWidth(), background.getIconHeight());
frame.setResizable(false);
frame.setVisible(true);
}
}...余下全文>>
2016-07-10 21:46黄相森 客户经理
java在JFrame上画东西,主要是使用paint方法,代码如下:
import java.awt.Color;import java.awt.Graphics;import javax.swing.JFrame;import javax.swing.JPanel;public class Draw extends JFrame{JPanel jPanel=new JPanel();public Draw() { jPanel.setBackground(Color.red); add(jPanel); Drawation drawaction=new Drawation();//添加画图,把上面jpanel的设置给覆盖了;要是先添加画图再添加 add(drawaction); //jpanel则把画图覆盖了 }public static void main(String[] args){ Draw draw=new Draw(); draw.setTitle("abc"); draw.setSize(300,300); draw.setVisible(true); draw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}class Drawation extends JPanel{ public void paintComponent(Graphics g){ super.paintComponents(g); g.drawString("agagh", 50, 45); }} 运行结果如下:
2016-07-10 21:43赖鹏博 客户经理
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.sw穿矗扁匪壮睹憋色铂姬ing.JFrame;
import javax.swing.JLabel;
public class T extends JFrame {
JButton ok, no;
JLabel r8 = new JLabel(new ImageIcon("picture.jpg"));
T() {
setLayout(new BorderLayout());
ok = new JButton("ok");
no = new JButton("no");
add(r8);
r8.setLayout(new FlowLayout());
r8.add(ok);
r8.add(no);
pack();
setLocation(100, 90);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
T splashWindow = new T();
}
}
你原来那种方法是想用 JLabel来做背景图片
可是JLabel和JButton是同级的,怎么能够覆盖
可以用JLabel作为容器,因为它从container继承
所以直接往JLabel中添加组件即可
热心网友
2016-07-10 21:40齐晓娴 客户经理
//不就是在窗口上设置一个背景图片么?怎么那么多不同的声音?
//代码如下 运行就看到结果了,你准备好个图片 放到当前路径里就可以了
import java.util.*;
import javax.swing.*;
public class Test extends JFrame {
private JPanel pan;
private JLabel labName;
private JTextField tfName;
private JLabel labPass;
private JPasswordField tfPass;
private JButton butConfirm;
private ImageIcon ii;
private JLabel lab;
Test(){
this.setBounds(200, 200, 300, 200);
pan = new JPanel();
labName = new JLabel("用户名");
tfName = new JTextField(20);
labPass = new JLabel("密 码");
tfPass = new JPasswordField(20);
butConfirm = new JButton("SAVE");
pan.add(labName);
pan.add(tfName);
pan.add(labPass);
pan.add(tfPass);
pan.add(butConfirm);
ii = new ImageIcon("1.jpg");//你只需要把这里的图片1.jpg给改了就可以了
lab = new JLabel(ii);
lab.setBounds(0, 0,ii.getIconWidth(), ii.getIconHeight());
this.getLayeredPane().setLayout(null);
this.getLayeredPane().add(lab, new Integer(Integer.MIN_VALU笭长蒂短郦的垫痊叮花E));
this.setContentPane(pan);
pan.setOpaque(false);
this.setVisible(true);
}
public static void main(String args[]){
new Test();
}
}
2016-07-10 21:37辛国清 客户经理
//不就是在窗口上设置一个背景图片么?怎么那么多不同的声音?
//代码如下 运行就看到结果了,你准备好个图片 放到当前路径里就可以了
import java.util.*;
import javax.swing.*;
public class Test extends JFrame {
private JPanel pan;
private JLabel labName;
private JTextField tfName;
private JLabel labPass;
private JPasswordField tfPass;
private JButton butConfirm;
private ImageIcon ii;
private JLabel lab;
Test(){
this.setBounds(200, 200, 300, 200);
pan = new JPanel();
labName = new JLabel("用户名");
tfName = new JTextField(20);
labPass = new JLabel("密 码");
tfPass = new JPasswordField(20);
butConfirm = new JButton("SAVE");
pan.add(labName);
pan.add(tfName);
pan.add(labPass);
pan.add(tfPass);
pan.add(butConfirm);
ii = new ImageIcon("1.jpg");//你只需要把这里的图片1.jpg给改了就可以了
lab = new JLabel(ii);
lab.setBounds(0, 0,ii.getIconWidth(), ii.getIconHeig梗姬盾肯墉厩堕询乏墨ht());
this.getLayeredPane().setLayout(null);
this.getLayeredPane().add(lab, new Integer(Integer.MIN_VALUE));
this.setContentPane(pan);
pan.setOpaque(false);
this.setVisible(true);
}
public static void main(String args[]){
new Test();
}
}
2016-07-10 21:34龚峻梅 客户经理
添加背景图片,以前给别人答的,你看一下。