import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
@SuppressWarnings("serial")
public class MainformFrame extends JFrame implements ActionListener{
JButton sm,cm,scm,um,exitB;
public MainformFrame(){
setTitle("学生信息管理系统");
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(200,200);
sm=new JButton("学生管理");
cm=new JButton("课程管理");
scm=new JButton("选课管理");
um=new JButton("用户管理");
exitB=new JButton("退出");
exitB.setToolTipText("安全退出系统");
JPanel lowerPanel=new JPanel();
Container c=this.getContentPane();
lowerPanel.add(sm);
lowerPanel.add(cm);
lowerPanel.add(scm);
lowerPanel.add(um);
lowerPanel.add(exitB);
c.add(lowerPanel);
sm.addActionListener(this);
cm.addActionListener(this);
scm.addActionListener(this);
um.addActionListener(this);
exitB.addActionListener(this);
} @Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==sm)
{
sms();
}
if(e.getSource()==cm)
{
cms();
}
if (e.getSource()==scm)
{
scms();
}
if (e.getSource()==um)
{
ums();
}
if (e.getSource()==exitB)
{
shutdown();
}

} private void shutdown() {
} private void ums() {
} private void scms() {
} private void cms() {
} private void sms() {
}
public static void main(String[]args){
new MainformFrame();
}
@SuppressWarnings("unused")
private class MyPanel extends JPanel {
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
   super.paintComponent(g);
   Image img = Toolkit.getDefaultToolkit().getImage("hello.jpg");
   g2.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
     }
    } }
请教下面几句,就是想在窗体设置背景颜色,我把图片放在放代码的文件里,可没图片显示,请指教,谢谢

解决方案 »

  1.   

    关注 正在学习swing方面的东西
    谁有好的电子教材啊  给发一下
    谢谢
      

  2.   

    我的代码,可以实现背景,会不会是你的图片没放对位置?自己看看吧,不行再说
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;import java.sql.ResultSet;
    public class UserLogin extends JFrame{
    JLabel l1=new JLabel("用户名:");
    JLabel l2=new JLabel("密码:");
    TextField t1=new TextField("test");
    JPasswordField t2 = new JPasswordField("test");
    JButton queding=new JButton("登 录");
    JButton cancel=new JButton("取 消");//创建各个组件
    Font zi=new Font("宋体",Font.TYPE1_FONT,10);
    String cxname;//用于查询的用户名和密码
    String cxpass;
    public UserLogin(){
    this.setContentPane(new MyPanel());
    setTitle("学生信息管理系统");
    setLayout(null);
    Image ico = Toolkit.getDefaultToolkit().getImage("image\\Mis.gif");
    this.setIconImage(ico);
    setSize(400, 350);
    setResizable(false);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Dimension scr = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frm = this.getSize();
    setLocation( (scr.width - frm.width) / 2,
            (scr.height - frm.height) / 2 );//窗体居中
    l1.setBounds(90, 100, 120, 20);//l1.setFont(zi);
    l1.setForeground(Color.BLUE);
    l2.setBounds(90, 160, 120, 20);//l2.setFont(zi);
    l2.setForeground(Color.BLUE);
    t1.setBounds(150, 100, 150, 27);
    t1.setFont(new Font("宋体",Font.CENTER_BASELINE,14));
    t2.setBounds(150,160,150,27);
    t2.setEchoChar('●');
    t2.setFont(zi);
    //t2.setFont(zi);
    //queding=new JButton(new ImageIcon("ico.gif"));
    queding.setBounds(60, 250, 80, 28);
    cancel.setBounds(275, 250, 80, 28);
    ;
    add(l1);add(l2);
    add(t1);add(t2);
    add(queding);
    add(cancel);//设置组件,添加组件
    this.setVisible(true);//窗体可见
    cancel.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
         System.exit(0);//对取消的响应
        
        }});
    queding.addActionListener(new ActionListener() {//对确定的响应
        public void actionPerformed(ActionEvent e) {
         checkUser();
    }});
    t1.addActionListener(new ActionListener() {//对确定的响应
        public void actionPerformed(ActionEvent e) {
         checkUser();
    }});
    t2.addActionListener(new ActionListener() {//对确定的响应
        public void actionPerformed(ActionEvent e) {
         checkUser();
    }});
    t1.addTextListener(new TextListener() {
        public void textValueChanged(TextEvent e) {
         t2.setText("");
        
        }});}private void checkUser() {//校验方法

    }  private class MyPanel extends JPanel {//设置背景
         public void paintComponent(Graphics g) {
          Graphics2D g2 = (Graphics2D)g;
       super.paintComponent(g);
       Image img = Toolkit.getDefaultToolkit().getImage("image\\login.jpg");
       g2.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);}
         }
     
     public static void main(String[] args){
     new UserLogin();
     }
    }
      

  3.   

    赞2楼,要继承Jpanel类,然后要重写PAINT的那个方法才可以实现的。
      

  4.   

    Image img = Toolkit.getDefaultToolkit().getImage("hello.jpg");
    图片用绝对路径试下,应该路径问题.
      

  5.   

    Image img = Toolkit.getDefaultToolkit().getImage("hello.jpg"); 
    是与.jar同一文件夹内,在项目调试时在本项目根文件夹内
      

  6.   


    public class Main {    public static void main(String[] args) {
            try {
                java.awt.image.BufferedImage rootimage = javax.imageio.ImageIO.read(ClassLoader.getSystemResourceAsStream("\\Image\\1.jpg"));//j.jpg在项目中的路径,Image为包名
            System.out.println("exit File:YES");
            } catch (IOException ex) {
                System.out.println("exit File:No exit");
                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
      

  7.   

    可以了,写个有background的JPanel就好了.====================================================
    import java.awt.Graphics;
    import java.awt.Image;import javax.swing.JPanel;class BackgroundPanel extends JPanel {
    /**
     * Panel with background
     */
    private static final long serialVersionUID = 1L;
    Image image; public BackgroundPanel() {
    try {
    image = javax.imageio.ImageIO
    .read(new java.net.URL(
    getClass()
    .getResource(
    "hello.jpg"),
    "hello.jpg"));
    } catch (Exception e) { /* handled in paintComponent() */
    }
    } @Override
    protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    if (image != null)
    g.drawImage(image, 0, 0, this.getWidth(), this.getHeight(), this);
    }
    }=======================================================import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;@SuppressWarnings("serial")
    public class MainformFrame extends JFrame implements ActionListener {
    JButton sm, cm, scm, um, exitB; public MainformFrame() {
    setTitle("student managment system");
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(200, 200);
    sm = new JButton("student managment");
    cm = new JButton("course managment");
    scm = new JButton("option managment");
    um = new JButton("useraccount managment");
    exitB = new JButton("out");
    exitB.setToolTipText("out safely");

    //JPanel lowerPanel=new JPanel();
    BackgroundPanel lowerPanel = new BackgroundPanel(); Container c = this.getContentPane();
    lowerPanel.add(sm);
    lowerPanel.add(cm);
    lowerPanel.add(scm);
    lowerPanel.add(um);
    lowerPanel.add(exitB);
    c.add(lowerPanel);
    sm.addActionListener(this);
    cm.addActionListener(this);
    scm.addActionListener(this);
    um.addActionListener(this);
    exitB.addActionListener(this);
    } public void actionPerformed(ActionEvent e) {
    if (e.getSource() == sm) {
    sms();
    }
    if (e.getSource() == cm) {
    cms();
    }
    if (e.getSource() == scm) {
    scms();
    }
    if (e.getSource() == um) {
    ums();
    }
    if (e.getSource() == exitB) {
    shutdown();
    }
    } private void shutdown() {
    } private void ums() {
    } private void scms() {
    } private void cms() {
    } private void sms() {
    } public static void main(String[] args) {
    new MainformFrame();
    } @SuppressWarnings("unused")
    private class MyPanel extends JPanel {
    public void paintComponent(Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    super.paintComponent(g);
    Image img = Toolkit.getDefaultToolkit().getImage("");
    g2.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
    }
    }
    }
      

  8.   

    跟二楼比,我的代码就多了一个lowerPanel和Container,会不会是这容器把背景给挡住了呢
      

  9.   

    晕!  1楼你根本就没有用到MyPanel这个类,怎么显示背景?
    你学java学了几天啊