java设置背景图片的问题,求教

这是源代码importjava.awt.Graphics;importjava.awt.Graphics2D;importjava.awt.Image;importjav... 这是源代码
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class pa extends JFrame{

private JFrame jf;
private JPanel jp;
private JLabel jl;
private JTextField jtf1;
private JTextField jtf2;
private JTextField jtf3;
private JButton jb1;
private JButton jb2;
private void init(){
this.setContentPane(new MyPanel());
jf = new JFrame("Application图形界面");
jf.setBounds(0,0,500,500);
jf.setLayout(null);

jl = new JLabel("请输入两个整型数据:");
jl.setBounds(80,5,150, 30);
jf.add(jl);

jtf1 = new JTextField();
jtf1.setBounds(25, 40, 90, 20);
jtf1.setHorizontalAlignment(JTextField.CENTER);
jf.add(jtf1);

jtf2 = new JTextField();
jtf2.setBounds(165, 40, 90, 20);
jtf2.setHorizontalAlignment(JTextField.CENTER);
jf.add(jtf2);

jtf3 = new JTextField();
jtf3.setBounds(25, 80, 120, 30);
jtf3.setHorizontalAlignment(JTextField.CENTER);
jf.add(jtf3);

jb1 = new JButton("最大值");
jb1.setBounds(160, 80, 100, 30);
jf.add(jb1);

jb2 = new JButton("关闭");
jb2.setBounds(100, 115, 85, 30);
jf.add(jb2);

myEvent();

jf.setResizable(false);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
}

private void myEvent(){
jb1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){

String str1 = jtf1.getText();
String str2 = jtf2.getText();
try{
int num1 = Integer.parseInt(str1);
int num2 = Integer.parseInt(str2);
jtf3.setText(String.valueOf(num1 > num2 ?num1:num2));
} catch (NumberFormatException e2){
JOptionPane.showMessageDialog(null, "输出错误,请重新输入", "alert", JOptionPane.ERROR_MESSAGE);
}
finally{
jtf1.setText("");
jtf2.setText("");
}
}
});

jb2.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
}

public pa(){
init();
}

public static void main(String[] args){
new pa();
}
private class MyPanel extends JPanel {
private static final long serialVersionUID = 1L;

public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
super.paintComponent(g);
Image img = Toolkit.getDefaultToolkit().getImage("zsjm.jpg");
g2.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
}
}
}
为什么背景图片显示不出来
求教。
展开
 我来答
yugi111
2014-11-13 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
已修改,复制粘贴即可

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Pa extends JFrame
{
private static final long serialVersionUID = 1L;
private JLabel jl;
private JTextField jtf1;
private JTextField jtf2;
private JTextField jtf3;
private JButton jb1;
private JButton jb2;

private void init ()
{
this.setContentPane (new MyPanel ());
this.setBounds (0, 0, 500, 500);
this.setLayout (null);
jl = new JLabel ("请输入两个整型数据:");
jl.setBounds (80, 5, 150, 30);
this.add (jl);
jtf1 = new JTextField ();
jtf1.setBounds (25, 40, 90, 20);
jtf1.setHorizontalAlignment (JTextField.CENTER);
this.add (jtf1);
jtf2 = new JTextField ();
jtf2.setBounds (165, 40, 90, 20);
jtf2.setHorizontalAlignment (JTextField.CENTER);
this.add (jtf2);
jtf3 = new JTextField ();
jtf3.setBounds (25, 80, 120, 30);
jtf3.setHorizontalAlignment (JTextField.CENTER);
this.add (jtf3);
jb1 = new JButton ("最大值");
jb1.setBounds (160, 80, 100, 30);
this.add (jb1);
jb2 = new JButton ("关闭");
jb2.setBounds (100, 115, 85, 30);
this.add (jb2);
myEvent ();
this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
this.setVisible (true);
}

private void myEvent ()
{
jb1.addActionListener (new ActionListener ()
{
@Override
public void actionPerformed ( ActionEvent e )
{
String str1 = jtf1.getText ();
String str2 = jtf2.getText ();
try
{
int num1 = Integer.parseInt (str1);
int num2 = Integer.parseInt (str2);
jtf3.setText (String.valueOf (num1 > num2 ? num1 : num2));
}
catch (NumberFormatException e2)
{
JOptionPane.showMessageDialog (null, "输出错误,请重新输入", "alert", JOptionPane.ERROR_MESSAGE);
}
finally
{
jtf1.setText ("");
jtf2.setText ("");
}
}
});
jb2.addActionListener (new ActionListener ()
{
@Override
public void actionPerformed ( ActionEvent e )
{
System.exit (0);
}
});
}

public Pa ()
{
init ();
}

public static void main ( String[] args )
{
new Pa ();
}

private class MyPanel extends JPanel
{
private static final long serialVersionUID = 1L;

@Override
public void paintComponent ( Graphics g )
{
Image img = Toolkit.getDefaultToolkit ().getImage ("list.png");
System.out.println (img.getWidth (null));
g.drawImage (img, 0, 0, this.getWidth (), this.getHeight (), this);
}
}
}

猫九尾K4d5V
2014-11-12 · TA获得超过146个赞
知道答主
回答量:129
采纳率:100%
帮助的人:66.3万
展开全部
lz 你好

代码修改如下:
(有注释)
import java.awt.*;import javax.swing.*;import java.io.*;import java.awt.event.*;//自定义一个面板类class MyPanel extends JPanel{ public void paintComponent(Graphics g){ super.paintComponent(g); //绘制一张背景图片 view.jpg是图片的路径 lz自己设定为自己想要添加的图片 Image image = new ImageIcon("view.jpg").getImage(); g.drawImage(image, 0, 0, this); }}public class denglu extends JFrame { //设置一个含有背景图片的面板 private MyPanel panel; private JLabel lab_zhanghao = new JLabel("账号:"); private JTextField jta_text = new JTextField(); Font lab = new Font("楷体",1,30); private JLabel lat_password = new JLabel("密码:"); Font lat = new Font("楷体",1,30); private JTextField jtb_text = new JTextField(); private JButton btn_register = new JButton("注册"); private JButton btn_land = new JButton("登陆"); Font btn = new Font("黑体",2,30); public static int pd = 0; public static String ak1, ak2; private Container contentPane = this.getContentPane(); public denglu () { this.setSize(400,300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocationRelativeTo(null); this.setTitle("登陆"); this.setResizable(false); btn_register.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { pd = 1; ak1 = jta_text .getText(); ak2 = jtb_text .getText(); String fileName = "E:\\users.dat"; try { Writer writer = new FileWriter(fileName); } catch (IOException e1) { e1.printStackTrace(); } jta_text.setText(""); jtb_text.setText(""); JOptionPane.showMessageDialog(null,"注册成功! 您的用户名是"+ak1+"密码是"+ ak2); } }); btn_land.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(pd==1) { if(ak1.equals(jta_text.getText()) && ak2.equals(jtb_text.getText())) { JOptionPane.showMessageDialog(null, "登录成功!"); } else { JOptionPane.showMessageDialog(null,"登陆失败!检查账号密码是否正确",null, JOptionPane.ERROR_MESSAGE, null); jta_text .setText(""); jtb_text .setText(""); } } } }); init(); panel = new MyPanel(); //将所有的组件添加到panel面板中 panel.add(lab_zhanghao); panel.add(lat_password); panel.add(jta_text); panel.add(jtb_text); panel.add(btn_register); panel.add(btn_land); panel.setLayout(null); getContentPane().add(panel); } private void init() { lab_zhanghao.setSize(200,100); lab_zhanghao. setLocation(50,20); lab_zhanghao.setFont(lab); lat_password.setSize(200,100); lat_password.setLocation(50,80); lat_password.setFont(lat); jta_text.setSize(190,30); jta_text.setLocation(160,55); jtb_text.setSize(190,30); jtb_text.setLocation(160,115); btn_register.setSize(120, 40); btn_register.setLocation(60, 180); btn_land.setSize(120, 40); btn_land.setLocation(230, 180); btn_register.setFont(btn); btn_land.setFont(btn); } public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); new denglu().setVisible(true); }}

我这儿的运行效果:

希望能帮助你哈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式