源码如下
import javax.swing.*;
import java.awt.*;
public class MyPanel extends JPanel {
@Override//重写画笔工具
public void paintComponent(Graphics g) {
super.paintComponents(g);
Image img = new ImageIcon("/img/bg/mbg.png").getImage();//定义一个背景图片对象
g.drawImage(img,0,0,this.getWidth(),this.getHeight(),this);
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/*
登录窗口
* */
public class LoginFrame extends JFrame {
private JLabel uNameJLabel;
private JTextField uNameJTextField;
private JButton btnJButton;
private JButton cancelJButton;
public LoginFrame(){
//创建组件
this.uNameJLabel = new JLabel("用户名");
this.uNameJTextField = new JTextField();//创建文本框对象
this.btnJButton = new JButton("登录");//创建按钮对象
this.cancelJButton = new JButton("取消");
//设置窗体属性
this.setSize(400,300);//设置登录界面大小
this.setLocationRelativeTo(null);//设置窗体居中
this.setDefaultCloseOperation(3);//设置退出游戏时关闭程序
this.setLayout(new GridLayout(2,2));//设置布局是GridLayout类型的2行2列
//给窗口添加组件
this.add(uNameJLabel);
this.add(uNameJTextField);
this.add(btnJButton);
this.add(cancelJButton);
this.setVisible(true);//设置窗体可见
MyEvent myEvent = new MyEvent();//创建监听器对象
this.btnJButton.addActionListener(myEvent);//将监听器对象绑定到指定按钮上
}
class MyEvent implements ActionListener{
//创建一个内部类,继承监听类,实现监听,也可以创建一个外部类
@Override//监听类ActionListener接口需要实现的方法
public void actionPerformed(ActionEvent e) {
//1.获取用户名
String uName = uNameJTextField.getText();
//2.创建一个socket链接服务器端
//3.跳转到主窗口去 (服务器判断用户名和密码准确后,跳转。本游戏不考虑先)
new MainFrame(uName);
}
}
}
import javax.swing.*;
/*
主窗口
* */
public class MainFrame extends JFrame {
public MyPanel myPanel;
public String uNameStr;
public MainFrame(String uName){
uNameStr = uName;
//设置窗体属性
this.setSize(1200,666);
this.setVisible(true);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
myPanel = new MyPanel();
myPanel.setBounds(0,0,1200,666);//从原点开始,宽1200 高666的画布面板
//将面板myPanel添加到窗体
this.add(myPanel);
}
}
public class Main {
public static void main(String[] args) {
new LoginFrame();//创建登录对象,登录类继承JFrame,所以也会调用JFrame中的一些方法
}
}
背景图存放路径

登录窗口是正常的!!

但是主界面背景图加载不了!!有大神能帮忙解答吗?!!!
