JAVA,Swing中的窗口怎么添加背景图?在图片重绘时,不把图片上的组件覆盖掉?
1个回答
展开全部
用JLabel作为背景,然后组件添加在JLabel上,就是把JLabel看作是跟JPanel同等级的容器,这样就没有你重绘时覆盖组件的问题了,给你个示例
package my.test.main;
import java.awt.BorderLayout;
public class First extends JDialog {
private final JPanel contentPanel = new JPanel();
private JTextField textField;
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
First dialog = new First();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public First() {
setBounds(100, 100, 450, 300);
getContentPane().setLayout(new BorderLayout());
contentPanel.setLayout(new GridLayout(1, 1));
getContentPane().add(contentPanel, BorderLayout.CENTER);
JLabel bgLb = new JLabel();
bgLb.setIcon(new ImageIcon("bg.jpg"));
bgLb.setHorizontalAlignment(SwingConstants.CENTER);
contentPanel.add(bgLb);
bgLb.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 50));
textField = new JTextField();
bgLb.add(textField);
textField.setColumns(10);
}
}
追问
还要什么其它办法吗?
有
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询