Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java背景未显示_Java_Image_Swing_Background - Fatal编程技术网

Java背景未显示

Java背景未显示,java,image,swing,background,Java,Image,Swing,Background,我有一个C驱动器的背景,但它没有显示,即使代码看起来很好。它可以运行,但有几个问题 1:背景不显示(你可以下载一个随机的bg.jpg文件,看看它是否有效) 2:很遗憾,文本框没有居中 3:我无法在文本框旁边显示文本,比如“用户/PW”或“欢迎”之类的 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Log extends JFrame { JButton b1; JLabel l1;

我有一个C驱动器的背景,但它没有显示,即使代码看起来很好。它可以运行,但有几个问题

1:背景不显示(你可以下载一个随机的bg.jpg文件,看看它是否有效)

2:很遗憾,文本框没有居中

3:我无法在文本框旁边显示文本,比如“用户/PW”或“欢迎”之类的

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Log extends JFrame {
JButton b1;
JLabel l1;

public static void main(String[] args) {
Log frameTabel = new Log();
}

JButton blogin = new JButton("Login");
JPanel panel = new JPanel();
JTextField txuser = new JTextField(15);
JPasswordField pass = new JPasswordField(15);

Log(){
super("Login Autentification");
Toolkit tk = Toolkit.getDefaultToolkit();  
int xSize = ((int) tk.getScreenSize().getWidth());  
int ySize = ((int) tk.getScreenSize().getHeight());  


setSize(xSize,ySize);
setLocationRelativeTo(null);
panel.setLayout (null); 
setLayout(new BorderLayout());
JLabel background=new JLabel(new ImageIcon("C:\\bg.jpg"));
add(background);
background.setLayout(new FlowLayout());


txuser.setBounds(70,30,150,20);
pass.setBounds(70,65,150,20);
blogin.setBounds(110,100,80,20);

panel.add(blogin);
panel.add(txuser);
panel.add(pass);

getContentPane().add(panel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
actionlogin();
}

public void actionlogin(){

    blogin.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent ae) {

String puname = txuser.getText();
String ppaswd = pass.getText();
if(puname.equals("test") && ppaswd.equals("12345")) {
newframe regFace =new newframe();
regFace.setVisible(true);
dispose();
} else {

JOptionPane.showMessageDialog(null,"Wrong Password / Username");
txuser.setText("");
pass.setText("");
txuser.requestFocus();
}

}
});
}
}

这应该是您的代码:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.imageio.*;
import java.awt.Graphics;

public class Log extends JFrame {
JButton b1;
JLabel l1;
Image bgImage;
JLabel user = new JLabel("User");

JButton blogin = new JButton("Login");
JPanel panel = new JPanel();
JTextField txuser = new JTextField(15);
JPasswordField pass = new JPasswordField(15);
public static void main(String[] args) {
    Log frameTabel = new Log("bg.jpg");
}

Log(String bgImg){
    super("Login Autentification");
    Toolkit tk = Toolkit.getDefaultToolkit();  
    int xSize = ((int) tk.getScreenSize().getWidth());  
    int ySize = ((int) tk.getScreenSize().getHeight());  
    try{
        bgImage = ImageIO.read(new File(bgImg));
    }
    catch(IOException e){}

    setSize(xSize,ySize);
    setLocationRelativeTo(null);
    panel.setLayout (null); 
    setLayout(new BorderLayout());
    JLabel background=new JLabel(new ImageIcon("C:\bg.jpg"));
    add(background);
    background.setLayout(new FlowLayout());


    txuser.setBounds(Math.round(xSize/2) - 75,30,150,20);
    pass.setBounds(Math.round(xSize/2) - 75,65,150,20);
    blogin.setBounds(Math.round(xSize/2) - 40,100,80,20);

    user.setBounds(Math.round(xSize/2) - 150, 30, 50, 20);

    panel.add(user);
    panel.add(blogin);
    panel.add(txuser);
    panel.add(pass);

    getContentPane().add(panel);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);
}
public void paint(Graphics g){
    super.paint(g);
    g.drawImage(bgImage, 0, 0, panel);
}
}
也许你会问自己“为什么他使用xSize并减去75或40?”好吧,我把它一分为二,所以我们在窗口的一半,现在我们减去文本框宽度的一半,所以我们有一半宽度到左边,一半到右边

对于用户的文本,我刚刚添加了JLabel并将其添加到面板中

图像背景我从中选择了它

我建议你多想一想你想要什么,你拥有什么,在网上搜索,因为大多数时候你的问题都有答案

无论如何,你会得到这样的结果:

(图像下隐藏了“用户”的标签,请注释void paint方法以使其显示,好吧,您可以获得背景图像和标签,所有缺少的都是修复该缺陷)

希望有帮助