JAVA,Swing中的窗口怎么添加背景图?在图片重绘时,不把图片上的组件覆盖掉?

 我来答
无二肆玖一
2016-06-07 · TA获得超过1046个赞
知道小有建树答主
回答量:850
采纳率:76%
帮助的人:370万
展开全部

用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);
}
}
追问
还要什么其它办法吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式