首页上一页 1 下一页尾页 1 条记录 1/1页
光盘\mr\13\sl\02\StudySwing\src\com\mwq\Index.java运行错误
发表在Java图书答疑
2009-07-12
是否精华
是
否
版块置顶:
是
否
光盘\mr\13\sl\02\StudySwing\src\com\mwq\Index.java即如下代码
package com.mwq;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Index {
public void add(JFrame frame) {
frame.setTitle("向JFrame窗口添加标签");// 修改窗口标题
JLabel label = new JLabel("明日图书培育明日英才!", JLabel.CENTER);// 创建指定文本的标签对象
label.setIcon(new ImageIcon("pic/MR1.JPG"));// 为标签添加图像
label.setHorizontalTextPosition(JLabel.CENTER);// 设置文本相对于图像的水平位置
label.setVerticalTextPosition(JLabel.BOTTOM);// 设置文本相对于图像的垂直位置
label.setEnabled(false);// 设置标签为不可用
label.setDisabledIcon(new ImageIcon("pic/MR2.JPG"));// 设置标签在不可用的情况下显示的图像
frame.add(label);// 将标签添加到窗口中
}
public static void main(String[] args) {
JFrame frame = new JFrame("利用JFrame创建窗口");// 创建指定标题的JFrame窗口对象
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 关闭按钮的动作为退出窗口
frame.setSize(400, 300);// 设置窗口大小
Dimension displaySize = Toolkit.getDefaultToolkit().getScreenSize();// 获得显示器大小对象
Dimension frameSize = frame.getSize();// 获得窗口大小对象
if (frameSize.width > displaySize.width)
frameSize.width = displaySize.width;// 窗口的宽度不能大于显示器的宽度
if (frameSize.height > displaySize.height)
frameSize.height = displaySize.height;// 窗口的高度不能大于显示器的高度
frame.setLocation((displaySize.width - frameSize.width) / 2,
(displaySize.height - frameSize.height) / 2);// 设置窗口居中显示器显示
Index index = new Index();
index.add(frame);// 向JFrame窗口添加标签
frame.setVisible(true);// 设置窗口为可见的,默认为不可见
}
}
在eclipse下创建01项目,在01项目中创建com.mwq包,然后导入此段代码,运行结果为:
java.lang.Error: Do not use javax.swing.JFrame.add() use javax.swing.JFrame.getContentPane().add() instead
at javax.swing.JFrame.createRootPaneException(JFrame.java:465)
at javax.swing.JFrame.addImpl(JFrame.java:491)
at java.awt.Container.add(Container.java:307)
at com.mwq.Index.add(Index.java:20)
at com.mwq.Index.main(Index.java:37)
Exception in thread "main"
第一次通过修改及剪辑部分代码后为:
import javax.swing.JLabel;
import javax.swing.ImageIcon;
public class Jframe1 {
public static void add(JFrame frame){
JLabel label=new JLabel("明日图书培育明日英才!",JLabel.CENTER);
// ①label.setIcon(new ImageIcon("pic/MR1.JPG"));
// ②label.setHorizontalTextPosition(JLabel.CENTER);
frame.getContentPane().add(label);
}
public static void main(String[] args) {
JFrame frame=new JFrame("利用JFrame创建窗口");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400,300);
Dimension displaySize=Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize=frame.getSize();
if(frameSize.width>displaySize.width)
frameSize.width=displaySize.width;
if(frameSize.height>displaySize.height)
frameSize.height=displaySize.height;
frame.setLocation((displaySize.width-frameSize.width)/2,(displaySize.height-frameSize.height)/2);
Jframe1 jframe1=new Jframe1();
Jframe1.add(frame);
frame.setVisible(true);
}
}
运行结果显示正常
第二次加入①、②处二行代码,显示结果是窗口正中央有"明日图书培育明日英才!"文字,但无图像!
请老师帮解决一下!谢谢
package com.mwq;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Index {
public void add(JFrame frame) {
frame.setTitle("向JFrame窗口添加标签");// 修改窗口标题
JLabel label = new JLabel("明日图书培育明日英才!", JLabel.CENTER);// 创建指定文本的标签对象
label.setIcon(new ImageIcon("pic/MR1.JPG"));// 为标签添加图像
label.setHorizontalTextPosition(JLabel.CENTER);// 设置文本相对于图像的水平位置
label.setVerticalTextPosition(JLabel.BOTTOM);// 设置文本相对于图像的垂直位置
label.setEnabled(false);// 设置标签为不可用
label.setDisabledIcon(new ImageIcon("pic/MR2.JPG"));// 设置标签在不可用的情况下显示的图像
frame.add(label);// 将标签添加到窗口中
}
public static void main(String[] args) {
JFrame frame = new JFrame("利用JFrame创建窗口");// 创建指定标题的JFrame窗口对象
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 关闭按钮的动作为退出窗口
frame.setSize(400, 300);// 设置窗口大小
Dimension displaySize = Toolkit.getDefaultToolkit().getScreenSize();// 获得显示器大小对象
Dimension frameSize = frame.getSize();// 获得窗口大小对象
if (frameSize.width > displaySize.width)
frameSize.width = displaySize.width;// 窗口的宽度不能大于显示器的宽度
if (frameSize.height > displaySize.height)
frameSize.height = displaySize.height;// 窗口的高度不能大于显示器的高度
frame.setLocation((displaySize.width - frameSize.width) / 2,
(displaySize.height - frameSize.height) / 2);// 设置窗口居中显示器显示
Index index = new Index();
index.add(frame);// 向JFrame窗口添加标签
frame.setVisible(true);// 设置窗口为可见的,默认为不可见
}
}
在eclipse下创建01项目,在01项目中创建com.mwq包,然后导入此段代码,运行结果为:
java.lang.Error: Do not use javax.swing.JFrame.add() use javax.swing.JFrame.getContentPane().add() instead
at javax.swing.JFrame.createRootPaneException(JFrame.java:465)
at javax.swing.JFrame.addImpl(JFrame.java:491)
at java.awt.Container.add(Container.java:307)
at com.mwq.Index.add(Index.java:20)
at com.mwq.Index.main(Index.java:37)
Exception in thread "main"
第一次通过修改及剪辑部分代码后为:
import javax.swing.JLabel;
import javax.swing.ImageIcon;
public class Jframe1 {
public static void add(JFrame frame){
JLabel label=new JLabel("明日图书培育明日英才!",JLabel.CENTER);
// ①label.setIcon(new ImageIcon("pic/MR1.JPG"));
// ②label.setHorizontalTextPosition(JLabel.CENTER);
frame.getContentPane().add(label);
}
public static void main(String[] args) {
JFrame frame=new JFrame("利用JFrame创建窗口");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400,300);
Dimension displaySize=Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize=frame.getSize();
if(frameSize.width>displaySize.width)
frameSize.width=displaySize.width;
if(frameSize.height>displaySize.height)
frameSize.height=displaySize.height;
frame.setLocation((displaySize.width-frameSize.width)/2,(displaySize.height-frameSize.height)/2);
Jframe1 jframe1=new Jframe1();
Jframe1.add(frame);
frame.setVisible(true);
}
}
运行结果显示正常
第二次加入①、②处二行代码,显示结果是窗口正中央有"明日图书培育明日英才!"文字,但无图像!
请老师帮解决一下!谢谢