一直没有做过java界面编程,而且现在居然还是修改别人的代码
小弟这里有一个程序,只有一个程序主界面,主类是继承于类JFrame,在主界面上只有简单的几个按钮、输入框什么的。我需要修改的是,在主界面上添加一个显示图片作为背景,但是图片添加以后,却将程序界面上的按钮等控件都覆盖了,鼠标扫到那里才能看见,有什么办法能让图片在最里层显示吗?
以下是我的部分代码:
private Image im = null;public CJForm() throws Exception
{
super();
initialize();
}
public void paint(Graphics g)
{
int h = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight();
int w = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth();
g.drawImage(im,0,0,w,h-25,this);
} /**
* This method initializes this
*
* @return void
*/
private void initialize() throws Exception
{
int h = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight();
int w = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth();
//Toolkit t = new Toolkit();
im = (Image)Toolkit.getDefaultToolkit().createImage("c:\\dsc07666.jpg");
this.setSize(w, h-25);
this.setLocation(0, 0);
this.setContentPane(getJContentPane());
this.setTitle("test");
this.setVisible(true);
this.setDefaultCloseOperation(3);
this.setResizable(false);
this.addWindowListener(new java.awt.event.WindowAdapter()
{
public void windowClosing(java.awt.event.WindowEvent e)
{
System.exit(0);
}
});
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() throws Exception
{
if (jContentPane == null)
{
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getFileSelectPanel(), java.awt.BorderLayout.NORTH);
jContentPane.add(getFileSelectPanel2(),java.awt.BorderLayout.CENTER);
jContentPane.add(getButtonPanel(), java.awt.BorderLayout.SOUTH);
}
return jContentPane;
}
小弟这里有一个程序,只有一个程序主界面,主类是继承于类JFrame,在主界面上只有简单的几个按钮、输入框什么的。我需要修改的是,在主界面上添加一个显示图片作为背景,但是图片添加以后,却将程序界面上的按钮等控件都覆盖了,鼠标扫到那里才能看见,有什么办法能让图片在最里层显示吗?
以下是我的部分代码:
private Image im = null;public CJForm() throws Exception
{
super();
initialize();
}
public void paint(Graphics g)
{
int h = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight();
int w = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth();
g.drawImage(im,0,0,w,h-25,this);
} /**
* This method initializes this
*
* @return void
*/
private void initialize() throws Exception
{
int h = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight();
int w = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth();
//Toolkit t = new Toolkit();
im = (Image)Toolkit.getDefaultToolkit().createImage("c:\\dsc07666.jpg");
this.setSize(w, h-25);
this.setLocation(0, 0);
this.setContentPane(getJContentPane());
this.setTitle("test");
this.setVisible(true);
this.setDefaultCloseOperation(3);
this.setResizable(false);
this.addWindowListener(new java.awt.event.WindowAdapter()
{
public void windowClosing(java.awt.event.WindowEvent e)
{
System.exit(0);
}
});
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() throws Exception
{
if (jContentPane == null)
{
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getFileSelectPanel(), java.awt.BorderLayout.NORTH);
jContentPane.add(getFileSelectPanel2(),java.awt.BorderLayout.CENTER);
jContentPane.add(getButtonPanel(), java.awt.BorderLayout.SOUTH);
}
return jContentPane;
}
解决方案 »
- awt swing 命令行中文乱码
- 怎么让swt里面的button上面的text换行,我本来想用swt做一个软键盘,可不知道怎么在一个button上面加两行字符?
- 如何在没有路由器只有交换机的情况下建立一个校园网的对战平台
- 请教关于关闭窗体的问题
- JAVA基础:JAVA几个常见错误简析
- JAVA 用系统默认方式来打开文件
- Tomcat5.0.28+SQL Server2000连接池配置的问题
- 如何使用java实现下面问题
- 这个错什么意思
- 如何实现远程类的调用呀?(已附代码)
- 请问各位,java怎么做成一个文件啊,就是把图片什么的等等大个完整的包
- 请问如果将JButton控件上的文字竖排?谢谢。
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;public class TestBackground extends JFrame{
ImageIcon img; public TestBackground(){
img = new ImageIcon("D:/temp/Winter.jpg"); 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);
}
}
private JLayeredPane layerPane = new JLayeredPane();
.....layerPane.add(jlabelPassWord, JLayeredPane.DEFAULT_LAYER.intValue() );
layerPane.add(jlabelID, JLayeredPane.DEFAULT_LAYER.intValue() );
layerPane.add(jpassWord, JLayeredPane.DEFAULT_LAYER.intValue() );
layerPane.add(jtextId, JLayeredPane.DEFAULT_LAYER.intValue() );
layerPane.add(btCancel, JLayeredPane.DEFAULT_LAYER.intValue() );
layerPane.add(btConfirm, JLayeredPane.DEFAULT_LAYER.intValue() );
layerPane.add(btChangeSer, JLayeredPane.DEFAULT_LAYER.intValue() );
// layerPane.add(jPanelSta, JLayeredPane.DEFAULT_LAYER.intValue() );
layerPane.add(statusBar,JLayeredPane.DEFAULT_LAYER.intValue() ) ;
layerPane.add(imaLabel,JLayeredPane.FRAME_CONTENT_LAYER.intValue() ) ;//背景
this.getContentPane().add(layerPane, null);
JLabel background = new JLabel(img);
frame.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE));
background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
((JPanel)frame.getContentPane()).setOpaque(false);