java的import使用问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 15:16:21
在我用IDE编辑的一段图形化程序中,JBUILDER自动为我生成如下代码?
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JToolBar;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import java.awt.BorderLayout;
import javax.swing.JTextArea;
import java.awt.Dimension;
import java.awt.Rectangle;
import com.borland.dbswing.FontChooser;
import java.io.*;
import javax.swing.JFileChooser;
import javax.swing.text.Document;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import com.borland.dbswing.DBTextDataBinder;
我的问题是:用一个javax.swing.*代替那些“重复的”javax.swing.....
怎么会报错????

我打个比方吧,swing是个目录,其下有JFrame、JPanel、JMenuBar等文件和
event等目录。
import javax.swing.*能够导入swing目录下的所有文件但不包括文件夹,因为它不会自动递归。
假如你需要用到swing/event目录下的文件时,必须要加上import javax.swing.*才行

应该是awt swing io这三个包中有同名的类,导致编译器无法明确引用哪一个类。仔细检查一下

import javax.swing.JFileChooser;
import javax.swing.text.Document;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import com.borland.dbswing.DBTextDataBinder;

很明显嘛,javax.swing.JFileChooser; 这个你是包含在javax.swing.*下。
但其他的都在javax.swing.text.* 或者 event.* dbswing.*
朋友 ,* 只代表引入那一层包下的类。他子包内的类是不会被引入;

但是建议 用原来的方式 ,不建议用 *代替。

import javax.swing.text.Document;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
不能使用,不包含子包

javax.swing.*不包括javax.swing.text.*和javax.swing.event.*因此肯定报错

不会给你自动生成的。你的*里可能有重复的。所以会给你报错