(谢谢各位,最好不要说让我去看书什么之类的话,如果我有一个月的时间我就会去看了)
11 个解决方案
#1
ImageIcon icon= new ImageIcon("fileName");
button.setIcon(icon);
button.setIcon(icon);
#2
帮顶
#3
没为按钮加过背景,只做过JPanel的
你可以照着试下,看可以不,要是可以别忘了告诉我
JPanel topPanel = new JPanel(){
public void paint(Graphics g){
super.paint(g);
//下面是取得你的背景图片,你根据你自己的要求来取得这个图片,不管什么方法,得到就OK
ImageIcon icon = new ImageIcon(ClassLoader.getSystemResource("com/res/xxx.jpg"));
icon.paintIcon(this, g, 0, 0);
}
};
你可以照着试下,看可以不,要是可以别忘了告诉我
#4
给你个思路
把背景放到一个JPanel里,JPanel的Layout设为FlowLayout
把Button放到这个JPanel里
再把JPanel放到指定层为BorderLayout的那个上层容器里,这样背景图和按钮就不会互相打架了。
把背景放到一个JPanel里,JPanel的Layout设为FlowLayout
把Button放到这个JPanel里
再把JPanel放到指定层为BorderLayout的那个上层容器里,这样背景图和按钮就不会互相打架了。
#5
帮顶
#6
同意
#7
同意
#8
package jframe;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class FrameTest extends JFrame implements ActionListener {
private JPanel j;
private JButton b = new JButton();
public FrameTest(String title) {
super.setTitle(title);
this.setSize(new Dimension(500, 300));
this.setLocation(200, 200);
this.setLayout(new BorderLayout());
j = new JPanel() {
public void paint(Graphics g) {
super.paint(g);
// 下面是取得你的背景图片,你根据你自己的要求来取得这个图片,不管什么方法,得到就OK
ImageIcon icon = new ImageIcon(ClassLoader.getSystemResource("jframe\\xxx.jpg"));
icon.paintIcon(this, g, 0, 0);
// 下面是按钮的,如果放到外面一拖放就被jpanel刷掉啦(一定要写包名,图片自己换吧)
ImageIcon icon2 = new ImageIcon(ClassLoader.getSystemResource("jframe\\x2.jpg"));
b.setIcon(icon2);
}
};
b.setSize(new Dimension(50, 25));
b.setText("click");
j.setSize(new Dimension(300, 200));
j.setLayout(new BoxLayout(j,BoxLayout.Y_AXIS));
j.add(b);
this.add(j, BorderLayout.CENTER);
this.setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
}
public static void main(String[] args) {
FrameTest ft = new FrameTest("FrameTest");
}
}
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class FrameTest extends JFrame implements ActionListener {
private JPanel j;
private JButton b = new JButton();
public FrameTest(String title) {
super.setTitle(title);
this.setSize(new Dimension(500, 300));
this.setLocation(200, 200);
this.setLayout(new BorderLayout());
j = new JPanel() {
public void paint(Graphics g) {
super.paint(g);
// 下面是取得你的背景图片,你根据你自己的要求来取得这个图片,不管什么方法,得到就OK
ImageIcon icon = new ImageIcon(ClassLoader.getSystemResource("jframe\\xxx.jpg"));
icon.paintIcon(this, g, 0, 0);
// 下面是按钮的,如果放到外面一拖放就被jpanel刷掉啦(一定要写包名,图片自己换吧)
ImageIcon icon2 = new ImageIcon(ClassLoader.getSystemResource("jframe\\x2.jpg"));
b.setIcon(icon2);
}
};
b.setSize(new Dimension(50, 25));
b.setText("click");
j.setSize(new Dimension(300, 200));
j.setLayout(new BoxLayout(j,BoxLayout.Y_AXIS));
j.add(b);
this.add(j, BorderLayout.CENTER);
this.setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
}
public static void main(String[] args) {
FrameTest ft = new FrameTest("FrameTest");
}
}
#9
Image image = Toolkit.getDefaultToolkit().getImage(
"image/mrv_bgimg.png");
Icon icon = new ImageIcon(image);
JButton b=new JButton();
b.setIcon(icon); //这样就可以显示出你的效果了!
"image/mrv_bgimg.png");
Icon icon = new ImageIcon(image);
JButton b=new JButton();
b.setIcon(icon); //这样就可以显示出你的效果了!
#10
3楼思路是对的,问题是要设置背景,重载JButton的paint方法吧
#11
谢谢你,我用你的方法做的!
#1
ImageIcon icon= new ImageIcon("fileName");
button.setIcon(icon);
button.setIcon(icon);
#2
帮顶
#3
没为按钮加过背景,只做过JPanel的
你可以照着试下,看可以不,要是可以别忘了告诉我
JPanel topPanel = new JPanel(){
public void paint(Graphics g){
super.paint(g);
//下面是取得你的背景图片,你根据你自己的要求来取得这个图片,不管什么方法,得到就OK
ImageIcon icon = new ImageIcon(ClassLoader.getSystemResource("com/res/xxx.jpg"));
icon.paintIcon(this, g, 0, 0);
}
};
你可以照着试下,看可以不,要是可以别忘了告诉我
#4
给你个思路
把背景放到一个JPanel里,JPanel的Layout设为FlowLayout
把Button放到这个JPanel里
再把JPanel放到指定层为BorderLayout的那个上层容器里,这样背景图和按钮就不会互相打架了。
把背景放到一个JPanel里,JPanel的Layout设为FlowLayout
把Button放到这个JPanel里
再把JPanel放到指定层为BorderLayout的那个上层容器里,这样背景图和按钮就不会互相打架了。
#5
帮顶
#6
同意
#7
同意
#8
package jframe;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class FrameTest extends JFrame implements ActionListener {
private JPanel j;
private JButton b = new JButton();
public FrameTest(String title) {
super.setTitle(title);
this.setSize(new Dimension(500, 300));
this.setLocation(200, 200);
this.setLayout(new BorderLayout());
j = new JPanel() {
public void paint(Graphics g) {
super.paint(g);
// 下面是取得你的背景图片,你根据你自己的要求来取得这个图片,不管什么方法,得到就OK
ImageIcon icon = new ImageIcon(ClassLoader.getSystemResource("jframe\\xxx.jpg"));
icon.paintIcon(this, g, 0, 0);
// 下面是按钮的,如果放到外面一拖放就被jpanel刷掉啦(一定要写包名,图片自己换吧)
ImageIcon icon2 = new ImageIcon(ClassLoader.getSystemResource("jframe\\x2.jpg"));
b.setIcon(icon2);
}
};
b.setSize(new Dimension(50, 25));
b.setText("click");
j.setSize(new Dimension(300, 200));
j.setLayout(new BoxLayout(j,BoxLayout.Y_AXIS));
j.add(b);
this.add(j, BorderLayout.CENTER);
this.setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
}
public static void main(String[] args) {
FrameTest ft = new FrameTest("FrameTest");
}
}
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class FrameTest extends JFrame implements ActionListener {
private JPanel j;
private JButton b = new JButton();
public FrameTest(String title) {
super.setTitle(title);
this.setSize(new Dimension(500, 300));
this.setLocation(200, 200);
this.setLayout(new BorderLayout());
j = new JPanel() {
public void paint(Graphics g) {
super.paint(g);
// 下面是取得你的背景图片,你根据你自己的要求来取得这个图片,不管什么方法,得到就OK
ImageIcon icon = new ImageIcon(ClassLoader.getSystemResource("jframe\\xxx.jpg"));
icon.paintIcon(this, g, 0, 0);
// 下面是按钮的,如果放到外面一拖放就被jpanel刷掉啦(一定要写包名,图片自己换吧)
ImageIcon icon2 = new ImageIcon(ClassLoader.getSystemResource("jframe\\x2.jpg"));
b.setIcon(icon2);
}
};
b.setSize(new Dimension(50, 25));
b.setText("click");
j.setSize(new Dimension(300, 200));
j.setLayout(new BoxLayout(j,BoxLayout.Y_AXIS));
j.add(b);
this.add(j, BorderLayout.CENTER);
this.setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
}
public static void main(String[] args) {
FrameTest ft = new FrameTest("FrameTest");
}
}
#9
Image image = Toolkit.getDefaultToolkit().getImage(
"image/mrv_bgimg.png");
Icon icon = new ImageIcon(image);
JButton b=new JButton();
b.setIcon(icon); //这样就可以显示出你的效果了!
"image/mrv_bgimg.png");
Icon icon = new ImageIcon(image);
JButton b=new JButton();
b.setIcon(icon); //这样就可以显示出你的效果了!
#10
3楼思路是对的,问题是要设置背景,重载JButton的paint方法吧
#11
谢谢你,我用你的方法做的!