JFrame如何在设置背景图片后让Panel里面的组件显示出来 我写了一个GUI小程序,在JFrame里设了一张图片作为背景,是在frame的paint()方法里画的,然后加一个Panel作为ContentPane,然后我在Panel设setLayout(null),以后在Panel里加组件就不能将加的组件显示出来了,这是怎么回事,是不是背景图片将加的组件覆盖了,有什么好的办法吗,要求Panel的布局一定是空布局。谢谢,急!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 setLayout(null) 以后 你要把要加在上面的東西 用坐標固定位置 這樣才能知道你放在哪了比如: .setBounds(new Rectangle(90,70,200,25)); 给你看个例子,自己比较一下。import java.awt.Graphics;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;public class TestBackground extends JFrame{ ImageIcon img; public TestBackground(){ img = new ImageIcon("imgs/background.gif"); JPanel panel = new JPanel(){ public void paintComponent(Graphics g){ g.drawImage(img.getImage(), 0, 0, null); super.paintComponent(g); } }; panel.setOpaque(false); panel.add( new JButton( "Hello" ) ); setContentPane( panel ); } public static void main(String [] args){ TestBackground frame = new TestBackground(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 300); frame.setVisible(true); }}自己该图片路径。 我给你写一写我的思路吧!!仅是重要的地方的代码。ImageIcon icon = new ImageIcon("你的图片所在的位置");JLabel label = JLabel(icon);JPanel panel = this.getContentPane();panel.add(label);label.setBounds(new Rectangle(0,0,100,100));//这里假设图片大小为100*100的这些代码的意思就是把你的背景图片放Label上面,然后再加在pannel上面,你可以试试!! JPanel jPanel2 = new JPanel() { protected void paintComponent(Graphics g) { g.drawImage(icon.getImage(), 0, 0, jPanel2.getWidth(),jPanel2.getHeight(),null); super.paintComponent(g); }};jPanel2.setOpaque(false);将JPanel加到jframe里,这样应该可以 我先把Jlable加到到Jpanel中,再把图片加到Jlable中,然后在拖其它的组件,但是就是不现实其它组件呢?那是怎么回事啊? cmd运行java时出现NoClassDefFoundError错误是什么原因 数据库sql问题 测试增加可用分的方法,请不要回复 产生无重复的随机数 ArrayList类中的clone()方法怎么用啊 ??迷惑ing,希望指教!! 关于DataInputStream 的问题?(新手帮帮忙) 问个不知道是不是基础的问题 包不存在的错误,帮我看看,初学 请问什么时候该用“class classname extends Object? 谁有关于权限管理的代码! 哪个有名的桌面程序是java编的呀?主文件是exe文件吗?是什么类型文件呀? 怎样按照给定的日期创建一个Date对象
.setBounds(new Rectangle(90,70,200,25));
import java.awt.Graphics;import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;public class TestBackground extends JFrame{
ImageIcon img; public TestBackground(){
img = new ImageIcon("imgs/background.gif"); JPanel panel = new JPanel(){
public void paintComponent(Graphics g){
g.drawImage(img.getImage(), 0, 0, null);
super.paintComponent(g);
}
}; panel.setOpaque(false);
panel.add( new JButton( "Hello" ) );
setContentPane( panel );
} public static void main(String [] args){
TestBackground frame = new TestBackground();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setVisible(true);
}
}自己该图片路径。
仅是重要的地方的代码。ImageIcon icon = new ImageIcon("你的图片所在的位置");
JLabel label = JLabel(icon);
JPanel panel = this.getContentPane();
panel.add(label);
label.setBounds(new Rectangle(0,0,100,100));//这里假设图片大小为100*100的
这些代码的意思就是把你的背景图片放Label上面,然后再加在pannel上面,你可以试试!!
g.drawImage(icon.getImage(), 0, 0, jPanel2.getWidth(),jPanel2.getHeight(),null);
super.paintComponent(g);
}
};
jPanel2.setOpaque(false);
将JPanel加到jframe里,这样应该可以