日期:2014-05-20  浏览次数:20822 次

有关java图形界面布局的问题。
最近在看一本书,叫做在《java从入门到精通》,感觉这本真的好烂,知识只讲一点点,其余的都是读者不能完全理解的代码。而且代码还很多不能运行。我真的是心都碎了,现在的人只想着赚钱,做学问实在是太浮躁了。
代码如下:package com.lzw;
import java.awt.*;
import java.net.*;
import javax.swing.*;
public class ImageZoom extends JFrame {
Image img;
private JPanel contentPanel = null;
private JSlider jSlider = null;
private JScrollPane jScrollPane = null;
private int imgWidth, imgHeight;
private Canvas canvas = null;
public ImageZoom() {
initialize(); // 调用初始化方法
}
// 界面初始化方法
private void initialize() {
URL imgUrl = ImageZoom.class.getResource("img.jpg");// 获取图片资源的路径
img = Toolkit.getDefaultToolkit().getImage(imgUrl);// 获取图片资源
canvas = new MyCanvas();
this.setBounds(100, 100, 800, 600); // 设置窗体大小和位置
this.setContentPane(getContentPanel()); // 设置内容面板
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体关闭模式
this.setTitle("绘制图片"); // 设置窗体标题
}
// 内容面板的布局
private JPanel getContentPanel() {
if (contentPanel == null) {
contentPanel = new JPanel();
contentPanel.setLayout(new BorderLayout());
contentPanel.add(getJSlider(), BorderLayout.SOUTH);
contentPanel.add(canvas, BorderLayout.CENTER);
}
return contentPanel;
}
// 获取滑块组件
private JSlider getJSlider() {
if (jSlider == null) {
jSlider = new JSlider();
jSlider.setMaximum(1000);
jSlider.setValue(100);
jSlider.setMinimum(1);
jSlider.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent e) {
canvas.repaint();
}
});
}
return jSlider;
}
// 主方法
public static void main(String[] args) {
new ImageZoom().setVisible(true);
}
// 画板类
class MyCanvas extends Canvas {
public void paint(Graphics g) {
int newW = 0, newH = 0;
imgWidth = img.getWidth(this); // 获取图片宽度
imgHeight = img.getHeight(this); // 获取图片高度
float value = jSlider.getValue();// 滑块组件的取值
newW = (int) (imgWidth * value / 100);// 计算图片放大后的宽度
newH = (int) (imgHeight * value / 100);// 计算图片放大后的高度
g.drawImage(img, 0, 0, newW, newH, this);// 绘制指定大小的图片
}
}
}
打在eclipse上后有如下错误:
求大神指点一下,可以的话分享一下自己学习java的感受与经历,THX。

------解决方案--------------------
可以正常运行吧;
放到我这里就没错啊;
你看的又是国产的书吗;

------解决方案--------------------
你把鼠标放到出错的地方看提示什么错呀,把错误信息拿去百度,根据错误提示解决问题嘛;肯定不怪《java从入门到精通》,新手还是好好看看这类书。。。我也是新手,嘻嘻
------解决方案--------------------
java 版本不够
------解决方案--------------------
可以看看:Java核心技术 卷1;
另外,看楼上所说,可能是版本的问题;
用jdk1.6或以上的吧;
------解决方案--------------------
引用:
哦,谢谢大家的回答,我把书中关盘里的代码复制到编译器里就好了,不知道怎么回事,谢谢大家了!!!

记得结贴哦;