我设法在netbeans中将图像添加到JPanel中并显示它。我想知道如何通过按下按钮进入下一个。
我使用此代码添加了图片:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
// TODO add your handling code here:
JFileChooser fileChooser = new JFileChooser();
int result = fileChooser.showOpenDialog(null);
if ( result == JFileChooser.APPROVE_OPTION ){
String Ruta = fileChooser.getSelectedFile().getAbsolutePath();
jTextField1.setText(Ruta);
Icon icon = new ImageIcon(Ruta);
jLabel2.setIcon(icon);
JOptionPane.showMessageDialog(this,"You chose to open this file: " +
fileChooser.getSelectedFile().getName());
}
}
当我按下一个名为“jButton2”的按钮来获取下一张图像时,无需再次从文件夹中手动选择它。
例如:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt){
// TODO add your handling code here:
}
非常感谢你。
答案 0 :(得分:2)
您必须枚举您正在浏览的目录中的图像。当用户选择文件时,您应该保留该目录中所有图像的列表,以便在用户单击下一个按钮时检索它们。您也可以在用户单击下一个按钮时获取文件列表。
答案 1 :(得分:1)
可能是这样的:
private File allFiles;
private int currentIndex;
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser fileChooser = new JFileChooser();
int result = fileChooser.showOpenDialog(null);
if ( result == JFileChooser.APPROVE_OPTION ){
currentFile = fileChooser.getSelectedFile();
String Ruta = currentFile.getAbsolutePath();
jTextField1.setText(Ruta);
allFiles = currentFile.getParent().listFiles(); // maybe you need a filter to include image files only....
currentIndex = indexOf(allFiles, currentFile);
Icon icon = new ImageIcon(Ruta);
jLabel2.setIcon(icon);
JOptionPane.showMessageDialog(this,"You chose to open this file: " + fileChooser.getSelectedFile().getName());
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
if (currentIndex+1 < allFiles.length) {
jtextField1.setText(allFiles[++currentIndex]);
}
}
private int indexOf(File[] files, File f) {
for (int i=0; i+1 < files.length; i++) {
if (files[i].equals(f)) {
return i;
}
}
return -1;
}
答案 2 :(得分:0)
我假设您想要下一张图片,如果可能的话,请在您在第一个代码摘录中选择的同一目录中。您可以做的是,一旦用户选择了图像,您就可以使用Apache的FileUtils来获取文件的扩展名。如果文件是JPG
,JPEG
,PNG
等,您可以在字符串列表中加载它的位置。
这将为您提供图片路径列表。然后,您可以使用按钮遍历列表。按下按钮后,您将移动到下一个项目,加载图像并进行渲染。
编辑:这就是我将如何逐步实现的目标:
jButton1ActionPerformed
方法中:
FileUtil
类获取文件名的扩展名。如果文件名是图像,例如PNG
,JPG
等,请将其(该文件的路径)添加到列表中。jButton2ActionPerformed
中,递增计数器(如果计数器不小于列表的大小,重新初始化为0,以避免OutOfBoundsExceptions
)并加载文件由计数器表示,使用与jButton1ActionPerformed
方法类似的逻辑。答案 3 :(得分:0)
File.getParent()
)的父文件。 File.list..()
方法获取图像文件。File
,然后显示下一个连接。