import java.awt.*
import java.awt.event.*
import java.awt.image.*
import java.io.*
import javax.imageio.*
import javax.swing.*
public class TestMenu1 extends JFrame{
private JTextArea textArea=new JTextArea()
private JMenuBar menuBar=new JMenuBar()
private JMenu fileMenu=new JMenu("文件")
private JMenu viewMenu=new JMenu("视图")
private JMenu toolMenu=new JMenu("工具栏")
private JMenuItem[] fileItem={new JMenuItem("新建"),new JMenuItem("打开"),new JMenuItem("保存"),new JMenuItem("退出")}
private JMenuItem[] viewItem={new JMenuItem("普通"),new JMenuItem("页面")}
private JCheckBoxMenuItem[] toolItem={new JCheckBoxMenuItem("常用"),new JCheckBoxMenuItem("绘图"),new JCheckBoxMenuItem("符号栏")}
private JPanel jPanel1
private JLabel jLabel
private Image image
private ImageIcon imageIcon
public TestMenu1(String title){
super(title)
jPanel1=new JPanel()
image = Toolkit.getDefaultToolkit().getImage("img1.JPG")
jLabel = new JLabel()
imageIcon = new ImageIcon(image)
jLabel.setIcon(imageIcon)
add(jLabel, BorderLayout.NORTH)
add(jPanel1, BorderLayout.SOUTH)
setVisible(true)
setSize(600, 600)
ActionListener actListener=new ActionListener(){
public void actionPerformed(ActionEvent e){
if(((JMenuItem)e.getSource()).getText()=="退出"){
System.exit(0)
}else{
textArea.setText(((JMenuItem)e.getSource()).getText())
}
}
}
ItemListener itemListener=new ItemListener(){
public void itemStateChanged(ItemEvent e){
String str=new String("")
for(int i=0i<toolItem.lengthi++){
if(toolItem[i].isSelected()){
str+=toolItem[i].getText()+"\n"
}
}
if(str.length()==0){
textArea.setText("没有复选")
}else{
textArea.setText(str)
}
}
}
for(int i=0i<fileItem.lengthi++){
fileItem[i].addActionListener(actListener)
fileMenu.add(fileItem[i])
if(i==2){
fileMenu.addSeparator()
}
}
for(int i=0i<viewItem.lengthi++){
viewItem[i].addActionListener(actListener)
viewMenu.add(viewItem[i])
}
viewMenu.addSeparator()
viewMenu.add(toolMenu)
for(int i=0i<toolItem.lengthi++){
toolItem[i].addItemListener(itemListener)
toolMenu.add(toolItem[i])
}
menuBar.add(fileMenu)
menuBar.add(viewMenu)
setJMenuBar(menuBar)
add(new JScrollPane(textArea))
}
public static void main(String[] args){
//TestMenu frame=
new TestMenu1("DEMO")
//frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
//frame.setSize(300,180)
//frame.setVisible(true)
}
}
1)文件要有后缀名2)要用Image或BufferedImage对象
3)因为你重写了paint()方法,所以不能在Label里面显示图片。你重写了paint()方法后,整个容器都会变成画布,所以看不到Label组件,自然也就看不到图片。应该在paint方法里面用g.drawImage方法把图片在画布中画出来。参考Java API,Graphics的drawImage方法。