gpt4 book ai didi

java - 为目录中的每个文件创建 JButton

转载 作者:太空宇宙 更新时间:2023-11-04 07:47:43 25 4
gpt4 key购买 nike

我正处于学习 Java 的早期阶段,目前正在研究 GUI。

我希望能够制作与文件夹中找到的每个文件相对应的一系列按钮。例如,文件的名称可能出现在按钮内。在此阶段,按钮不需要执行任何操作!

我已经成功地制作了单独的程序,该程序(a)生成在文件夹中找到的文件名数组。 (b) 使用 for 循环生成一组按钮。然而,我将两者结合起来的尝试却很可笑。我对 OO Java 的了解还不够。

请有人告诉我如何继续?请保持简单!

ButtonGrid.java

import javax.swing.JFrame; 
import javax.swing.JButton;
import java.awt.GridLayout;

public class ButtonGrid {

JFrame frame=new JFrame();
JButton[][] grid;

public ButtonGrid(int width, int length){
frame.setLayout(new GridLayout(width,length));
grid=new JButton[width][length];
for(int y=0; y<length; y++){
for(int x=0; x<width; x++){
grid[x][y]=new JButton("("+x+","+y+")");
frame.add(grid[x][y]);
}
}
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
new ButtonGrid(3,3);
}
}

ListFiles.Java

import java.io.File;

public class ListFiles
{

public static void main(String[] args)
{

String path = ".";
String files;
File folder = new File(path);
File[] listOfFiles = folder.listFiles();

for (int i = 0; i < listOfFiles.length; i++)
{
files = listOfFiles[i].getName();
System.out.println(files);
}
}
}

最佳答案

代码:

import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.io.File;
import javax.swing.JButton;

public class ListFiles
{
public static void main(String[] args) {
JFrame frame=new JFrame();
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(2,5));
String path = ".";
String file;
File folder = new File(path);
File[] listOfFiles = folder.listFiles();

for (int i = 0; i < listOfFiles.length; i++) {
file = listOfFiles[i].getName();
panel.add( new JButton( file ) );
}
frame.add( panel ) ;
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}

关于java - 为目录中的每个文件创建 JButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14997765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com