JAVA中如何设置窗体的背景(比如设置窗体的背景图片)?

解决方案 »

  1.   

    好象没有直接在窗体上设置背景图片的方法,你可利用JPanel来实现。
      

  2.   


    Container c=getContentPane();
    c.setBackground(Color.RED);
      

  3.   

    awt组件或一般swing组件直接setBackground即可,但是JFrame就得getContenePane().setBackground了。
      

  4.   

    给你一段代码好了,反正以前写的。看背景的那个函数使用就行了。
    import javax.swing.*;
    import javax.swing.border.EtchedBorder;
    import java.awt.*;
    import java.awt.event.*;interface MyInitScheme {
    void initVarient();
    void initFace();
    }
    class MyMenu extends JMenu implements MyInitScheme {
    public MyMenu(String text) {
    super(text);
    initVarient();
    initFace();
    }
    public void initFace() {
    setBackground(SystemColor.desktop);
    setFont(new Font("Serif", 0, 16));
    setForeground(SystemColor.info);
    setBorder(BorderFactory.createEtchedBorder());
    }
    public void initVarient(){};
    }
    class MyMenuItem extends JMenuItem implements MyInitScheme {
    public MyMenuItem(String text) {
    super(text);
    initVarient();
    initFace();
    }
    public void initFace() {
    setBackground(SystemColor.desktop);
    setFont(new Font("Serif", 0, 16));
    setForeground(SystemColor.info);
    setBorder(BorderFactory.createEtchedBorder());
    }
    public void initVarient(){};
    }
    class MyButton extends JButton implements MyInitScheme {
    public MyButton(String text) {
    super(text);
    initVarient();
    initFace();
    }
    public void initFace() {
    setBackground(SystemColor.desktop);
    setFont(new Font("Serif", 0, 16));
    setForeground(SystemColor.info);
    setBorder(BorderFactory.createEtchedBorder());
    }
    public void initVarient(){};
    }class MyFrame extends JFrame implements MyInitScheme {
    private JMenuBar mnuBar = new JMenuBar();
    private JMenu mnuFile = new MyMenu("File");
    private JMenuItem mnuFileExit = new MyMenuItem("Exit");
    private JMenu mnuHelp = new MyMenu("Help");
    private JMenuItem mnuHelpContact = new MyMenuItem("Contact Me");
    private JButton btnDefault = new MyButton("Default");
    private JButton btnOther = new MyButton("Another");
    private JTextArea txt=new JTextArea(30,20);
    private JScrollPane scrollPane=new JScrollPane(txt); private KeyAdapter key=new KeyAdapter() {
    public void keyPressed(KeyEvent e) {
    if(e.getKeyCode()==KeyEvent.VK_ENTER) {
    btnDefault.requestFocus();
    }
    }
    }; public void initVarient(){};
    public void initFace() {
    this.setSize(new Dimension(320, 240));
    this.setResizable(false);
    this.getContentPane().setLayout(null);
    this.getContentPane().setBackground(SystemColor.activeCaption);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mnuBar.setBackground(SystemColor.desktop);
    mnuBar.setBorder(BorderFactory.createRaisedBevelBorder()); mnuFile.setMnemonic('F');
    mnuFileExit.setMnemonic('x');
    mnuFileExit.addActionListener(new ActionListener () {
    public void actionPerformed(ActionEvent e) {
    System.exit(0);
    }
    } ); mnuHelp.setMnemonic('H');
    mnuHelpContact.setMnemonic('M');
    mnuHelpContact.addActionListener(new ActionListener () {
    public void actionPerformed(ActionEvent e) {
    try {
    Process p=Runtime.getRuntime().exec("C:/Program Files/"
    +"Internet Explorer/IExplore.EXE"
    +" mailto:[email protected]");
    } catch (Exception ex) {
    System.out.println(ex);
    }
    }
    } ); btnDefault.setBounds(new Rectangle(220, 50, 75, 30));
    btnDefault.setMnemonic('D'); btnOther.setBounds(new Rectangle(220, 100, 75, 30));
    btnOther.setMnemonic('A'); btnOther.addKeyListener(key);
    addKeyListener(key); mnuFile.add(mnuFileExit);
    mnuHelp.add(mnuHelpContact);
    mnuBar.add(mnuFile);
    mnuBar.add(mnuHelp);// txt.setEditable(false);
    txt.setCaretColor(getBackground()); scrollPane.setBounds(new Rectangle(10, 10, 200, 170)); this.setJMenuBar(mnuBar);
    this.getRootPane().setDefaultButton(btnDefault);
    this.getContentPane().add(btnDefault, null);
    this.getContentPane().add(btnOther, null);
    getContentPane().add(scrollPane);
    } public MyFrame(String title) {
    super(title);
    initVarient();
    initFace();
    show();
    btnOther.requestFocus();
    }
    }
    public class MyButtonApp {
    public static void main(String[] args) {
    JFrame frame=new MyFrame("Test MyButton");
    // frame.setExtendedState(Frame.ICONIFIED);
    java.awt.Toolkit kit=java.awt.Toolkit.getDefaultToolkit();
    frame.setIconImage(kit.getImage("javalogo52x88.gif")); 
    }
    }