我试图为学校制作一个游戏(作业)的注册表格,我已经完成了但是我想在它上面添加一个图像,但它会阻止一切,JButton,JTextField等。我怎么能解决这个问题? 已编辑:我将代码更糟糕地发生了同样的问题。
public class MyGUI {
JLabel xyz;
JButton b1;
public JPanel createContentPane () {
JPanel mainPanel = new JPanel();
mainPanel.setLayout(null);
xyz = new JLabel("Don't have an account? Sign up!");
xyz.setBounds(10,0,390,30);
xyz.setFont(new Font("Lucida Grande", Font.BOLD, 20));
xyz.setLayout(new FlowLayout());
mainPanel.add(xyz);
b1 = new JButton("Create Account");
b1.setBounds(40,540,310,33);
b1.setFont(new Font("Comic San Ms", Font.BOLD , 16));
b1.setForeground(Color.white);
b1.setBackground(Color.blue);
mainPanel.add(b1);
return mainPanel;
}
public static void CreateAndShowGUI() {
JFrame frame = new JFrame("Romaverse ONLINE! REGISTRATION");
Container c = frame.getContentPane();
MyGUI demo = new MyGUI();
c.add(demo.createContentPane());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(480,700);
frame.setVisible(true);
frame.setContentPane(new JLabel(new ImageIcon("C:\\Users\\Admin\\Desktop\\roma.jpg")));
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
CreateAndShowGUI();
}
});
}
}
这是我放置图像的部分
frame.setContentPane(newJLabel(newImageIcon("C:\\Users\\Admin\\Desktop\\roma.jpg"));
答案 0 :(得分:0)
它显示了两种方法:
编辑:
使用方法1的基本代码:
JLabel background = new JLabel( new ImageIcon(...) );
label.setLayout( new FlowLayout() );
label.add( new JButton("Hello") );
JFrame frame = new JFrame();
frame.add( background );
答案 1 :(得分:0)
图片不会阻止按钮,会替换,因为您正在调用setContentPane
。你为什么做这个?您只需将图像与createContentPane
方法中的所有其他控件一起添加即可。请注意,添加控件的顺序可能会影响其Z顺序。