java初学者 求教怎么在窗口中添加一张图片

package java525;

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

public class MainWindow extends JFrame implements ActionListener {

JMenuBar menuBar;//菜单条
JMenu menu1, menu2, menu3, menu4;//菜单
JMenuItem m11, m12, m13;//菜单项
JMenuItem m21, m22, m23;
JMenuItem m31, m32, m33;
JMenuItem m41, m42;

public MainWindow() {
createMenu();
setTitle("学生管理系统"); //设置窗口标题
setIconImage((new ImageIcon("icon.gif")).getImage()); //设置图标
setSize(600, 400);//设置窗口大小
Dimension size = Toolkit.getDefaultToolkit().getScreenSize();//取屏幕大小
setLocation((size.width - getWidth()) / 2, (size.height - getHeight()) / 2);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); //设置关闭行为
setVisible(true);//使窗口可见
this.setExtendedState(JFrame.MAXIMIZED_BOTH);

}

想在 "学生管理系统"这个大窗口下添加一张图片

//注意:
//当前目录下要有一个p.jpg文件
//压缩这个文件使它的大小尽量小,最好只有几十KB
//否则无法显示背景图片
package java525;

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

public class MainWindow extends JFrame implements ActionListener {
JMenuBar menuBar;//菜单条
JMenu menu1, menu2, menu3, menu4;//菜单
JMenuItem m11, m12, m13;//菜单项
JMenuItem m21, m22, m23;
JMenuItem m31, m32, m33;
JMenuItem m41, m42;
Image pic;
public static void main(String[] args) {
new MainWindow();
}
public MainWindow() {
pic=Toolkit.getDefaultToolkit().getImage("p.jpg");
MediaTracker t=new MediaTracker(this);
t.addImage(pic,1);
try
{
t.waitForID(1);
}
catch(Exception e)
{

}
//createMenu();
setTitle("学生管理系统"); //设置窗口标题
setIconImage((new ImageIcon("icon.gif")).getImage()); //设置图标
setSize(600, 400);//设置窗口大小
Dimension size = Toolkit.getDefaultToolkit().getScreenSize();//取屏幕大小
setLocation((size.width - getWidth()) / 2, (size.height - getHeight()) / 2);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); //设置关闭行为
setVisible(true);//使窗口可见
//this.setExtendedState(JFrame.MAXIMIZED_BOTH);
}
public void actionPerformed(ActionEvent e) {

}
public void paint(Graphics g) {
super.paint(g);
g.drawImage(pic,0,0,null);
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-06-22
import javax.imageio.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
/**
 * 格子绘图演示
 * @author hardneedl
 */
final class P extends JFrame{
    private static final Dimension SIZE = new Dimension(600,400);

    public Dimension getMinimumSize() {return SIZE;}
    public Dimension getMaximumSize() {return SIZE;}
    public Dimension getPreferredSize() {return SIZE;}

    public String getTitle() {return "画笔绘图示意";}

    private JComponent canvas;

    private P() throws HeadlessException {
        super();
        init();
        addListeners();
        doLay();
    }

    private void init() {

        canvas = new MyCanvas() {
            private Brush b;

            Brush getBrush() {
                try {
                    return b == null ?
                        b =  new PictureBrush(ImageIO.read(new File(System.getProperty("app.picture"))))
                        :
                        b;
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return null;
            }
        };

    }

    private void doLay(){
        getContentPane().add(canvas, BorderLayout.CENTER);
        pack();
        setVisible(true);
    }

    private void addListeners(){
        addWindowListener(new WindowAdapter() {

            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }

    public static void main(String... args) {
        SwingUtilities.invokeLater(P::new);
    }

    /*抽象画布*/
    abstract private static class MyCanvas extends JComponent {

        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            getBrush().paint(g);
        }

        abstract Brush getBrush();
    }

    /*画笔*/
    private interface Brush {
        void paint(Graphics g);
    }

    /*图片画笔*/
    private static class PictureBrush implements Brush, Observer {
        private Image img;
        private PictureBrush(Image img) {
            this.img = img;
        }

        public void paint(Graphics g) {
            if (img == null) return;
            Graphics g2 = g.create();

            g2.drawImage(img, 0, 0, null);
            g2.dispose();
        }

        public void update(Observable o, Object arg) {}
    }
}

我是JAVA初学者,在编一个登入窗口的程序,老师让我们作业里要包括运行结...
public class Test_Login extends javax.swing.JFrame { private JPanel jPanel1;private JButton bntLogin;private JButton bntCannel;private JPasswordField pwd;private JTextField username;private JLabel jLabel2;private JLabel jLabel1;public static void main(String[] args) { Test_Login inst...

小白自学JAVA怎么入门?
建议一:有系统的学习方案,系统的学习教程,先把Java学了一遍之后才是真正的入门,然后就是不断的练习,不断的巩固,为之后的工作打下坚实的基础。建议二:学习Java不要先看书学,一定要先把一块的知识点学完一遍,并且自己多多少少会动手操作,然后去看书温习。还有不要盲目的看视频,很多人都是光看...

初学者关于Java安装应用的一些问题
建议你的,一开始不用这些IDE,直接在记事本上写,这样你就会发现很多你犯得错误,以后就会改正,等你熟练了,在使用一款IDE来帮助你提高效率。

Java初学者应该注意些什么呢?
初学者在学习的时候一定要注意一点,先想后做,先是把思路弄清楚,然后在编写代码,逻辑一定要清晰,细节要做到位。在提高效率上面,我们切记不要在一个小问题上面钻牛角尖,很多时候我们确实是用自己的能力解决不了这个小问题,因为我们接触的东西是是在太少了。所以就要多去寻求别人的帮助,让解决问题...

JAVA 学习方法或捷径--求教
1. Java语言基础 谈到Java语言基础学习的书籍,大家肯定会推荐Bruce Eckel的《Thinking in Java》。它是一本写的相当深刻的技术书籍,Java语言基础部分基本没有其它任何一本书可以超越它。该书的作者Bruce Eckel在网络上被称为天才的投机者,作者的《Thinking in C++》在1995年曾获SoftwareDevelopment Jolt Award最佳书籍...

我是个java初学者,怎么样才能学好java?
我是个java初学者,怎么样才能学好java?学java无非就是自学和报班这两种方式,至于java自学还是报班好,这个还是需要根据您自身的条件来判断的。如果您自控能力、自学能力且有基础那自学好。反之报班好。下面跟您说一下java自学与报java培训班学的不同之处,供您参考。Java自学:好的地方是省钱,不太...

怎么学java(怎么学java软件编程)
1、首先要学习Java语言基础,数据类型、基本语法、常用数据结构、常用类,等等,网上资源很多。 2、结合工作内容或者兴趣方向,学习常用框架,比如Web开发常用SpringBoot,注意框架学习时要挑选当前的Top3,已经过时的或者太新还看不清楚未来的,都不适合新手学习。 3、随着学习进阶,逐步可以独当一面,在工作中积累项目经验、...

我是Java初学者,在记事本里写了一个小程序,也装好JDK了,但是不知如何运...
这是最简单的程序了,连main方法都没有,哈哈!安装jdk以后 比如安装在d:\/jdk 进入bin目录,d:\/jdk\/bin 右键我的电脑-属性-高级-环境变量,有一个path变量,把值改为d:\/jdk\/bin,然后进dos,即运行cmd,比如你把文件保存在了c盘,并命名为A.java,在dos下c盘运行javac A.java 然后运行java A...

新手想自学JAVA,需要做什么准备?
(1)看入门视频,网上很多的,比如张孝祥老师的,没必要看完,看几个入门视频后就可以进入(2)了(需要两天就够了),至于编译器工具什么的里面都会讲到;(2)Java基础书籍,一开始没必要看一本很厚的砖头书,可以找本薄的书来看,两百多页的就够了,然后进入(3)(需要两周);(3)买本深入...

求eclipse的基本操作 怎么用
第一步先建一个工程:(1):在eclipse左上角点file(中文版为文件)--> new --> Java Project (2):在点出来的对话框上面的project name中填入工程名字,是你自起的,比如叫hello,写完后,点下面的 finish (完成),一个工程就建好了 这是你会在左边的窗口中看到刚新建的hello工程 第二步新建一个类:...

相似回答