Topic: 为什么编译不能通过呢?

  Print this page

1.为什么编译不能通过呢? Copy to clipboard
Posted by: tanytan
Posted on: 2004-12-20 15:20

下面是本人练习GUI的一个例子,但就是编译通不过,各位大侠能不能帮我看看啊
import java.awt.*;
import java.awt.event.*;
import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.ImageIcon;

/**
* <p>Title: 按钮演示</p>
* <p>Description: 提供一个按钮的演示。如何实现按钮和是一个按钮失效</p>
* <p>Filename: ButtonDemo.java </p>
*/
public class ButtonDemo extends JPanel
implements ActionListener {
protected JButton b1, b2, b3;
/**
*<br>方法说明:构造器,初始图形界面构建
*<br>输入参数:
*<br>返回类型:
*/
public ButtonDemo() {
ImageIcon leftButtonIcon = createImageIcon("images/right.gif");
ImageIcon middleButtonIcon = createImageIcon("images/middle.gif");
ImageIcon rightButtonIcon = createImageIcon("images/left.gif");

b1 = new JButton("失效中间按钮(D)", leftButtonIcon);
b1.setVerticalTextPosition(AbstractButton.CENTER);//水平中间对齐
b1.setHorizontalTextPosition(AbstractButton.LEADING);//相当于LEFT
b1.setMnemonic(KeyEvent.VK_D);//将b1邦定alt+D键
b1.setActionCommand("disable");

b2 = new JButton("M中间按钮", middleButtonIcon);
b2.setVerticalTextPosition(AbstractButton.BOTTOM);
b2.setHorizontalTextPosition(AbstractButton.CENTER);
b2.setMnemonic(KeyEvent.VK_M);//将b2邦定alt+M键

b3 = new JButton("E激活中间按钮", rightButtonIcon);
b3.setMnemonic(KeyEvent.VK_E);//将b3邦定alt+E键
b3.setActionCommand("enable");
b3.setEnabled(false);

//给1和3添加事件监听
b1.addActionListener(this);
b3.addActionListener(this);
//设置按钮提示文本
b1.setToolTipText("点击这个按钮,将使中间的按钮失效!");
b2.setToolTipText("点击这个按钮,没有任何的事件发生!");
b3.setToolTipText("点击这个按钮,将使中间的按钮有效");

//将按钮添加到JPanel中
add(b1);
add(b2);
add(b3);
}
/**
*<br>方法说明:事件处理
*<br>输入参数:
*<br>返回类型:
*/
public void actionPerformed(ActionEvent e) {
if ("disable".equals(e.getActionCommand())) {
b2.setEnabled(false);
b1.setEnabled(false);
b3.setEnabled(true);
} else {
b2.setEnabled(true);
b1.setEnabled(true);
b3.setEnabled(false);
}
}
/**
*<br>方法说明:创建图标,
*<br>输入参数:String path 图标所在的路径
*<br>返回类型:ImageIcon 图标对象
*/
protected static ImageIcon createImageIcon(String path) {
java.net.URL imgURL = ButtonDemo.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
/**
*<br>方法说明:主方法
*<br>输入参数:
*<br>返回类型:
*/
public static void main(String[] args) {
//设置使用新的swing界面
JFrame.setDefaultLookAndFeelDecorated(true);

//创建一个窗体
JFrame frame = new JFrame("ButtonDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//创建一个面板
ButtonDemo newContentPane = new ButtonDemo();
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);

//显示窗体
frame.pack();
frame.setVisible(true);
}
}

2.Re:为什么编译不能通过呢? [Re: tanytan] Copy to clipboard
Posted by: tanytan
Posted on: 2004-12-20 15:25

下面是编译时的截面:

3.Re:为什么编译不能通过呢? [Re: tanytan] Copy to clipboard
Posted by: caike
Posted on: 2004-12-20 15:49

编译没问题呀,
我复制你的代码到eclipse里面去,RUN没问题,只是少了你的那几个图片而已。

4.Re:为什么编译不能通过呢? [Re: tanytan] Copy to clipboard
Posted by: caike
Posted on: 2004-12-20 15:53

估计又是能classpath设置的问题。
你先把这句话注释掉试试

JFrame.setDefaultLookAndFeelDecorated(true);
看看编译能不能通过

5.Re:为什么编译不能通过呢? [Re: tanytan] Copy to clipboard
Posted by: tanytan
Posted on: 2004-12-20 16:06

哈,可以了。注释掉以后可以编译和运行了。我是直接在dos下运行的,不止这样学习java好还是在集成环境下学习比较好?能否给点建议?

6.Re:为什么编译不能通过呢? [Re: tanytan] Copy to clipboard
Posted by: tanytan
Posted on: 2004-12-20 16:16

我取消该注释后又不能运行了,看来问题确实在那儿
但是为什么会这样呢?
能不能帮我解释一下
我classpath设置是c:\jdk1.3.1_02\lib\tools.jar;.;c:\jdk1.3.1_02\dt.jar;
path设置是c:\jdk1.3.1_02\bin;
应该没错吧?

7.Re:为什么编译不能通过呢? [Re: tanytan] Copy to clipboard
Posted by: mitnickcbc
Posted on: 2004-12-20 19:49

你的jdk太旧了,查查api,
JFrame.setDefaultLookAndFeelDecorated()是jdk1.4以后才有的

8.Re:为什么编译不能通过呢? [Re: mitnickcbc] Copy to clipboard
Posted by: caike
Posted on: 2004-12-21 09:15

还是下个eclipse用吧,别把时间浪费在配JDK,CLASSPATH上了。

9.Re:为什么编译不能通过呢? [Re: caike] Copy to clipboard
Posted by: heart5
Posted on: 2004-12-23 13:28

caike wrote:
还是下个eclipse用吧,别把时间浪费在配JDK,CLASSPATH上了。


赞同。

建议先入门,然后再精通


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923