关于路径选择对话框 JFileChooser yours=new JFileChooser();yours.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);youes.showOpenDialog(parent); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 \j2sdk1.4.0\demo\jfc\FileChooserDemo这个例子应该能满足你。package pGComponent;import java.awt.*;import java.awt.event.*;import java.io.File;import javax.swing.*;import java.beans.*;/** * <p>Title: 多文档</p> * <p>Description: 测试java多文档的实现</p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: </p> * @author unascribed * @version 1.0 */public class ViewFileChoose extends JFileChooser{ ImagePreviewer previewer = new ImagePreviewer(); public String c ="name"; public String name = "aaaa"; public ViewFileChoose() { super("FileChoose Components"); setAccessoryComponent(); this.showOpenDialog(null); } private void setAccessoryComponent() { JPanel previewPanel = new JPanel(); previewPanel.setLayout(new BorderLayout()); previewPanel.add(new JLabel("Image Previewer", SwingConstants.CENTER), BorderLayout.NORTH); previewPanel.add(previewer, BorderLayout.CENTER); previewer.setPreferredSize(new Dimension(200,0)); previewer.setBorder(BorderFactory.createEtchedBorder()); this.setAccessory(previewPanel);//设置打开文件对话框的附属组件 //new ImagePreviewerAccessoryAdapter(this, previewer);; this.addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent e) { if(e.getPropertyName().equals( JFileChooser.SELECTED_FILE_CHANGED_PROPERTY)) { previewer.update((File)e.getNewValue()); } } }); }}class ImagePreviewer extends JComponent{ private ImageIcon icon; public void update(File file) { Dimension size = getSize(); Insets insets = getInsets(); System.err.println(insets); icon = new ImageIcon(file.getPath()); icon.setImage(icon.getImage().getScaledInstance( size.width - insets.left - insets.right, size.height - insets.top - insets.bottom, Image.SCALE_SMOOTH)); if(isShowing()) { repaint(); } } public void paintComponent(Graphics g) { Insets insets = getInsets(); super.paintComponent(g); if(icon != null) icon.paintIcon(this, g, insets.left, insets.top); }} 求助,我一个简单的类的代码,但是为何部署的时候报错 javase 线程问题 几个小问题,关于类型转化的。 字符串接收对象的函数返回值问题,100分求~~~~~~~~~~~~~~~ 请问如何用java实现实时编程? 请教一个关于0(n)时间算法的问题! 显示一个窗体 在窗体中作侧添加树 怎样对JTREE进行监听事件 急!String的equals问题 大神帮我看看这个多线程的问题(2个线程轮流执行) 新手 朋友们!当你的数据库中有100万条记录时,你的存取速度是不是很慢!我有解决方法! 关于for也许是这个我不知道
import java.awt.event.*;
import java.io.File;
import javax.swing.*;
import java.beans.*;/**
* <p>Title: 多文档</p>
* <p>Description: 测试java多文档的实现</p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/public class ViewFileChoose extends JFileChooser
{
ImagePreviewer previewer = new ImagePreviewer();
public String c ="name";
public String name = "aaaa";
public ViewFileChoose()
{
super("FileChoose Components");
setAccessoryComponent();
this.showOpenDialog(null);
}
private void setAccessoryComponent()
{
JPanel previewPanel = new JPanel(); previewPanel.setLayout(new BorderLayout());
previewPanel.add(new JLabel("Image Previewer",
SwingConstants.CENTER),
BorderLayout.NORTH);
previewPanel.add(previewer, BorderLayout.CENTER);
previewer.setPreferredSize(new Dimension(200,0));
previewer.setBorder(BorderFactory.createEtchedBorder()); this.setAccessory(previewPanel);//设置打开文件对话框的附属组件
//new ImagePreviewerAccessoryAdapter(this, previewer);;
this.addPropertyChangeListener(new PropertyChangeListener()
{
public void propertyChange(PropertyChangeEvent e)
{
if(e.getPropertyName().equals( JFileChooser.SELECTED_FILE_CHANGED_PROPERTY))
{
previewer.update((File)e.getNewValue());
}
}
});
}}class ImagePreviewer extends JComponent
{
private ImageIcon icon; public void update(File file)
{
Dimension size = getSize();
Insets insets = getInsets();
System.err.println(insets); icon = new ImageIcon(file.getPath()); icon.setImage(icon.getImage().getScaledInstance(
size.width - insets.left - insets.right,
size.height - insets.top - insets.bottom,
Image.SCALE_SMOOTH)); if(isShowing())
{
repaint();
}
}
public void paintComponent(Graphics g)
{
Insets insets = getInsets(); super.paintComponent(g); if(icon != null)
icon.paintIcon(this, g, insets.left, insets.top);
}
}