Java swing组件 图形用户界面

时间:2023-01-27 15:38:13
要求:
 编写一个显示图像文件的Application应用程序,在该程序JFrame窗体中添加JPanel面板和一个JToolBar工具栏,在工具栏上添加一个JButton“打开”按扭,单击“打开”按纽,弹出JFileChooser文件打开选择对话框,选择图像文件后将其显示在JPnel面板中。


我的代码是:



import java.awt.*;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JFileChooser;
import javax.swing.JToolBar;
import javax.swing.JButton;
import javax.swing.SwingConstants;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.ImageProducer;
import java.io.File;
import javax.swing.*;

public class Panelimage extends JFrame {
JPanel panel;

private JPanel contentPane;
private final JToolBar toolBar = new JToolBar();

/**
 * Launch the application.
 */
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Panelimage frame = new Panelimage();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
 * Create the frame.
 */
public Panelimage() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
{
JPanel panel = new JPanel();
panel.setBounds(0, 0, 432, 255);
contentPane.add(panel);
panel.setLayout(new BorderLayout(0, 0));
toolBar.setToolTipText("\u5DE5\u5177\u680F");
panel.add(toolBar, BorderLayout.NORTH);
}
{
JButton button = new JButton("\u6253\u5F00");
button.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
JFileChooser fc=new JFileChooser();
fc.showOpenDialog(null);
File file=fc.getSelectedFile();
String s=file.toString();
JLabel label=new JLabel();
ImageIcon image=new ImageIcon(s);
label.setIcon(image);
label.setSize(image.getIconWidth(),image.getIconHeight());
panel.add(label,BorderLayout.CENTER);

}
});
button.setVerticalAlignment(SwingConstants.BOTTOM);
toolBar.add(button);
}
}
}


结果报错信息好多,求高手指教,能有修正版的代码更好,看着代码比较能容易理解一点,谢谢大家!!!

6 个解决方案

#1


分太少呵呵

#2


重在交流啊,

#3


最近也在弄这些,我认为要先设置组件性质,在往容器添加组件

#4


引用 3 楼 wuzhiheng1990 的回复:
最近也在弄这些,我认为要先设置组件性质,在往容器添加组件


这个我已经弄出来了,那个label变量出错了,有个地方将它变成了局部变量,改一下就OK了,以后多多交流吧

#5


 代码好好贴吧,加个tag
 

#6


多多交流

#1


分太少呵呵

#2


重在交流啊,

#3


最近也在弄这些,我认为要先设置组件性质,在往容器添加组件

#4


引用 3 楼 wuzhiheng1990 的回复:
最近也在弄这些,我认为要先设置组件性质,在往容器添加组件


这个我已经弄出来了,那个label变量出错了,有个地方将它变成了局部变量,改一下就OK了,以后多多交流吧

#5


 代码好好贴吧,加个tag
 

#6


多多交流