java让用户选择文件_java – JPanel里面的JFileChooser;如何让用户选择

默认的JFileChooser可以工作,但是我不喜欢的是弹出它的事实.我宁愿有一个GUI,其中所有的动作发生.

现在,我确实设法做到了.下面的代码将FileChooser菜单很好地放在GUI中,而不是在它上面弹出.

我正在努力的是如何获得所选文件.我知道JFileChooser没有嵌入Panel中时有效的代码,但是我无法使用它.

任何人?

import java.awt.*;

import javax.swing.*;

class SplitPane extends JFrame {

/**

*

*/

private static final long serialVersionUID = 1L;

private JSplitPane splitPaneV;

private JSplitPane splitPaneH;

private JPanel panel1;

private JPanel panel2;

private JPanel panel3;

public SplitPane() {

setTitle("Split Pane Application");

setBackground(Color.gray);

JPanel topPanel = new JPanel();

topPanel.setLayout(new BorderLayout());

topPanel.setPreferredSize(new Dimension(700, 500));

getContentPane().add(topPanel);

// Create the panels

createPanel1();

createPanel2();

createPanel3();

// Create a splitter pane

splitPaneV = new JSplitPane(JSplitPane.VERTICAL_SPLIT);

topPanel.add(splitPaneV, BorderLayout.CENTER);

splitPaneH = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);

splitPaneH.setLeftComponent(panel1);

splitPaneH.setRightComponent(panel2);

splitPaneV.setLeftComponent(splitPaneH);

splitPaneV.setRightComponent(panel3);

}

public void createPanel1() {

panel1 = new JPanel();

panel1.setLayout(new BorderLayout());

// Add some buttons

panel1.add(new JButton("North"), BorderLayout.NORTH);

panel1.add(new JButton("South"), BorderLayout.SOUTH);

panel1.add(new JButton("East"), BorderLayout.EAST);

panel1.add(new JButton("West"), BorderLayout.WEST);

panel1.add(new JButton("Center"), BorderLayout.CENTER);

}

public void createPanel2() {

panel2 = new JPanel();

panel2.setLayout(new FlowLayout());

panel2.add(new JButton("Button 1"));

panel2.add(new JButton("Button 2"));

panel2.add(new JButton("Button 3"));

}

public void createPanel3() {

panel3 = new JPanel();

panel3.setLayout(new BorderLayout());

panel3.setPreferredSize(new Dimension(400, 100));

panel3.setMinimumSize(new Dimension(100, 50));

JFileChooser fileChooser = new JFileChooser();

fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

fileChooser

.setDialogTitle("Browse naar de locatie waar je de gesorteerde bestanden wil zetten en klik op \"OPEN\"");

panel3.add(fileChooser, BorderLayout.NORTH);

}

// this is where my quest starts. Now, I would like to work with the file

// chosen...

// for my ordinary 'popup' fileChoosers the code below works, so I tried the

// code below

// int returnVal = fileChooser.showOpenDialog(panel3);

// if (returnVal == JFileChooser.APPROVE_OPTION)

// fileName = fileChooser.getSelectedFile().getPath();

// System.out.println(fileName);

// but in this case it messes everything up..., after uncommenting I lose

// the frames, and get a popup again...

// anybody a suggestion how to actually get the users chosen file?

public static void main(String args[]) {

// Create an instance of the test application

SplitPane mainFrame = new SplitPane();

mainFrame.pack();

mainFrame.setVisible(true);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抱歉,我无法查看或提供文档。但是我可以为您提供一些指导,帮助您创建一个简单的Java GUI图片查看器。 首先,您需要使用Java图形用户界面(GUI)工具包,例如Swing或JavaFX。这些工具包可以帮助您创建各种用户界面元素,例如窗口、标签、按钮和图像容器。 接下来,您需要编写Java代码来加载和显示图像。您可以使用Java的内置ImageIO类来加载图像文件,然后将其显示在GUI中的图像容器中。您还可以添加其他功能,例如放大/缩小图像、旋转图像和滚动条。 以下是一个简单的Java GUI图片查看器的示例代码: ```java import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import javax.imageio.ImageIO; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; public class ImageViewer extends JFrame implements ActionListener { private JButton openButton; private JLabel imageLabel; private JScrollPane scrollPane; public ImageViewer() { setTitle("Java GUI图片查看器"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(800, 600); // 创建按钮和标签 openButton = new JButton("打开图片"); openButton.addActionListener(this); imageLabel = new JLabel(); // 创建滚动条 scrollPane = new JScrollPane(imageLabel); scrollPane.setPreferredSize(new Dimension(800, 600)); // 将按钮和滚动条添加到面板中 JPanel panel = new JPanel(); panel.add(openButton); getContentPane().add(panel, BorderLayout.NORTH); getContentPane().add(scrollPane, BorderLayout.CENTER); } public void actionPerformed(ActionEvent e) { if (e.getSource() == openButton) { // 打开文件选择JFileChooser fileChooser = new JFileChooser(); int result = fileChooser.showOpenDialog(this); if (result == JFileChooser.APPROVE_OPTION) { // 加载图像文件并显示 File file = fileChooser.getSelectedFile(); try { Image image = ImageIO.read(file); imageLabel.setIcon(new ImageIcon(image)); } catch (Exception ex) { ex.printStackTrace(); } } } } public static void main(String[] args) { ImageViewer viewer = new ImageViewer(); viewer.setVisible(true); } } ``` 此代码创建一个带有“打开图片”按钮和图像容器的窗口。单击按钮将打开文件选择器,选择图像文件后将加载并显示在图像容器中。 请注意,这只是一个简单的示例,还有许多其他功能可以添加到GUI中,例如缩放、旋转和滚动条。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值