如何在java中添加gui中的背景图像

时间:2015-12-24 16:36:42

标签: java

我在java中创建了这个登录表单,我希望在其中添加背景图像但是我尝试但无济于事。我怎么能让它成为可能?

 import javax.swing.*;

    import java.awt.*;

    import java.awt.event.*;

    public class LogIn extends JFrame {

        JFrame f;
        JTextField t1, t2;
        JButton btn;
        JLabel lbl1, lbl2,img;

        public LogIn() {

    //        setLayout(new BorderLayout());

            img = new JLabel
            (new ImageIcon("C:\\Users\\AF Computer\\Downloads\\picture.jpg"));

            f = new JFrame("LogIn Form");
            lbl1 = new JLabel("User Name:");
            t1 = new JTextField();
            lbl2 = new JLabel("Password:");
            t2 = new JTextField();
            btn = new JButton("Log In");

            lbl1.setBounds(10, 80, 70, 30);
            t1.setBounds(80, 80, 250, 30);
            lbl2.setBounds(10, 130, 70, 30);
            t2.setBounds(80, 130, 250, 30);
            btn.setBounds(230, 200, 100, 40);
            f.add(img);
            f.add(lbl1);
            f.add(lbl2);
            f.add(t1);
            f.add(t2);
            f.add(btn);
             f.setLayout(new FlowLayout());
            f.setLayout(null);
            f.setVisible(true);
            f.setSize(1000, 700);
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setResizable(false);

        }

        public static void main(String[] args) {
            new LogIn();
        }

    }

1 个答案:

答案 0 :(得分:0)

我看到你正在设置JLabel的界限,但不是img。如果您没有为JFrame使用任何布局,则还必须设置img标签的边界,否则使用JFrame的默认布局,将只显示其中一个组件。

添加以下代码(如果您决定使用绝对定位):

this.setLayout(null);
img.setBounds(/*your bounds*/);

如果还建议从JPanel扩展并将面板添加到JFrame而不是为JFrame创建新的子类。