有关java图形界面布局的问题。

kai11656 2014-04-30 04:53:21
最近在看一本书,叫做在《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。
...全文
246 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
-江沐风- 2014-05-02
  • 打赏
  • 举报
回复
引用 6 楼 u012787728 的回复:
哦,谢谢大家的回答,我把书中关盘里的代码复制到编译器里就好了,不知道怎么回事,谢谢大家了!!!
记得结贴哦;
panic5 2014-05-01
  • 打赏
  • 举报
回复
你把鼠标放到出错的地方看提示什么错呀,把错误信息拿去百度,根据错误提示解决问题嘛;肯定不怪《java从入门到精通》,新手还是好好看看这类书。。。我也是新手,嘻嘻
kai11656 2014-05-01
  • 打赏
  • 举报
回复
哦,谢谢大家的回答,我把书中关盘里的代码复制到编译器里就好了,不知道怎么回事,谢谢大家了!!!
-江沐风- 2014-05-01
  • 打赏
  • 举报
回复
可以看看:Java核心技术 卷1; 另外,看楼上所说,可能是版本的问题; 用jdk1.6或以上的吧;
teemai 2014-05-01
  • 打赏
  • 举报
回复
java 版本不够
kai11656 2014-04-30
  • 打赏
  • 举报
回复
不是吧,在你那里能运行? 那是什么问题啊? 求推荐本书吧,这书确实太烂。我看了think in java 的目录,没有图形用户界面啊,我该看那本书啊?
-江沐风- 2014-04-30
  • 打赏
  • 举报
回复
可以正常运行吧; 放到我这里就没错啊; 你看的又是国产的书吗;

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧