java JFileChooser问题

第一我想启用open和save的事件。第二,我想隐藏Filename这一栏。谢谢。... 第一我想启用 open 和save 的事件。

第二,我想隐藏File name 这一栏。
谢谢。
展开
 我来答
匿名用户
2013-07-29
展开全部
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import javax.swing.*;

public class Test implements ActionListener {

JFileChooser fileChooser;
JLabel label;

Test() {
fileChooser = new JFileChooser(".");
boolean hide = true;
disableTextComponent(fileChooser, hide);

fileChooser.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals(JFileChooser.APPROVE_SELECTION)) {
System.out.println("**按钮");
} else if (e.getActionCommand().equals(
JFileChooser.CANCEL_SELECTION)) {
System.out.println("关闭按钮");
}
}
});
}

public void actionPerformed(ActionEvent e) {
int retVal = fileChooser.showOpenDialog(null);
if(retVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
if(file != null) {
label.setText(file.getPath());
}
}
}

private void disableTextComponent(Container parent, boolean hide) {
Component[] c = parent.getComponents();
for(int j = 0; j < c.length; j++) {
//System.out.println(unpack(c[j]));
if(unpack(c[j]).equals("MetalFileChooserUI$3")) {
if(hide)
c[j].getParent().setVisible(false);
else
c[j].setEnabled(false);
}
if(((Container)c[j]).getComponentCount() > 0) {
disableTextComponent((Container)c[j], hide);
}
}
}

private String unpack(Component c) {
String s = c.getClass().getName();
int dot = s.lastIndexOf(".");
if(dot != -1)
s = s.substring(dot+1);
return s;
}

private JPanel getContent() {
label = new JLabel();
label.setHorizontalAlignment(JLabel.CENTER);
JButton button = new JButton("open dialog");
button.addActionListener(this);
JPanel panel = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(5,5,5,5);
gbc.weighty = 1.0;
gbc.gridwidth = GridBagConstraints.REMAINDER;
panel.add(label, gbc);
gbc.anchor = GridBagConstraints.SOUTH;
panel.add(button, gbc);
return panel;
}

public static void main(String[] args) {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setContentPane(new Test().getContent());
f.setSize(360,140);
f.setLocation(200,200);
f.setVisible(true);
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式