在java窗口中显示文件
嗨,我想用JFrame在windows中显示文件名,但它不起作用,我不知道如何在arrayList中为我不知道的每个文件添加新元素 这是一节课:在java窗口中显示文件,java,swing,jframe,window,Java,Swing,Jframe,Window,嗨,我想用JFrame在windows中显示文件名,但它不起作用,我不知道如何在arrayList中为我不知道的每个文件添加新元素 这是一节课: import java.io.File; import java.io.IOException; import javax.swing.JFrame; public class InterfaceGraphique extends JFrame { private static final long serialVersionUID
import java.io.File;
import java.io.IOException;
import javax.swing.JFrame;
public class InterfaceGraphique extends JFrame {
private static final long serialVersionUID = 1L;
public InterfaceGraphique() {
this.setTitle("My first Window");
this.setSize(800,1000);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// First Graph Object
Graph graph = new Graph();
String Path = "./TEST";
try {
parcourir2(Path);
} catch (IOException e) {
e.printStackTrace();
}
this.setContentPane(graph);
this.setVisible(true);
}
public static void parcourir2 (String Path) throws IOException {
String[] Name = {"Point1", "Point2", "Point3","Point4","Point5","Point6","Point7","Point8","Point9","Point10"};
Graph graph = new Graph();
File repertoire = new File(Path);
File[] liste = repertoire.listFiles();
int y = 150;
if (liste != null) {
for (int i = 0; i < liste.length; i++) {
if (liste[i].isDirectory()) {
parcourir2(liste[i].getAbsolutePath());
}
if(liste[i].isFile()) {
Point Name[i] = new Point(liste[i].getName(),150,y,"normal");
graph.addPoint(Nom[i]);
System.out.println(liste[i] + "\n");
Test.TestFile.Afficher(liste[i]);
}
y+=50 ;
}
} else {
System.err.println( "Nom de repertoire invalide");
}
}
}
导入java.io.File;
导入java.io.IOException;
导入javax.swing.JFrame;
公共类接口Graphique扩展JFrame{
私有静态最终长serialVersionUID=1L;
公共接口{
这个.setTitle(“我的第一个窗口”);
这个。设置大小(8001000);
此.setLocationRelativeTo(空);
此.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//第一个图形对象
图形=新图形();
字符串路径=“./TEST”;
试一试{
公园2(径);
}捕获(IOE异常){
e、 printStackTrace();
}
这个.setContentPane(图形);
此.setVisible(true);
}
公共静态void parcourir2(字符串路径)引发IOException{
字符串[]名称={“点1”、“点2”、“点3”、“点4”、“点5”、“点6”、“点7”、“点8”、“点9”、“点10”};
图形=新图形();
文件曲目=新文件(路径);
File[]liste=repertoire.listFiles();
int y=150;
如果(liste!=null){
对于(int i=0;i
还有一个类图:
import java.awt.Graphics;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.Font;
import java.util.ArrayList;
import java.util.List;
public class Graph extends JPanel {
private static final long serialVersionUID = 1L;
List<Point> points = new ArrayList<Point>();
@Override
public void paintComponent(Graphics g){
System.out.println("Je suis exécutée !");
for (Point point : points) {
if(point.getEtat().contentEquals("erreur")) {
Font font = new Font("Courier", Font.BOLD, 20);
g.setFont(font);
g.setColor(Color.red);
} else if(point.getEtat().contentEquals("normal")) {
Font font = new Font("Courier", Font.BOLD, 20);
g.setFont(font);
g.setColor(Color.black);
}else if(point.getEtat().contentEquals("valide")) {
Font font = new Font("Courier", Font.BOLD, 20);
g.setFont(font);
g.setColor(Color.green);
}
g.drawString(point.getFichier(), point.getX(), point.getX());
}
}
public void addPoint(Point point) {
points.add(point);
}
public static void main(String[] args){
@SuppressWarnings("unused")
InterfaceGraphique ig = new InterfaceGraphique();
}
}
导入java.awt.Graphics;
导入javax.swing.JPanel;
导入java.awt.Color;
导入java.awt.Font;
导入java.util.ArrayList;
导入java.util.List;
公共类图扩展了JPanel{
私有静态最终长serialVersionUID=1L;
列表点=新的ArrayList();
@凌驾
公共组件(图形g){
System.out.println(“jesuis exécutée!”);
用于(点:点){
if(point.getEtat().contentEquals(“erreur”)){
Font Font=新字体(“Courier”,Font.BOLD,20);
g、 setFont(字体);
g、 setColor(Color.red);
}else if(point.getEtat().contentEquals(“正常”)){
Font Font=新字体(“Courier”,Font.BOLD,20);
g、 setFont(字体);
g、 设置颜色(颜色为黑色);
}else if(point.getEtat().contentEquals(“valide”)){
Font Font=新字体(“Courier”,Font.BOLD,20);
g、 setFont(字体);
g、 setColor(Color.green);
}
g、 抽绳(point.getFichier(),point.getX(),point.getX());
}
}
公共无效添加点(点-点){
点。添加(点);
}
公共静态void main(字符串[]args){
@抑制警告(“未使用”)
InterfaceGraphique ig=新的InterfaceGraphique();
}
}
这是我的项目的最后一步,这非常重要,感谢长期以来我一直在寻找的帮助
到底是什么问题?两行“点名称[i]=新点(liste[i].getName(),150,y,“normal”);graph.addPoint(名称[i]);”点是什么?此外,在parcourir2中,您创建一个图形,向其中添加项目,然后对该图形不做任何操作。在InterfaceGraphique构造函数中,您还创建了一个图形,但不做任何处理。我在下面发送了一个类点“我不知道在哪里放置新图形才能使其工作”。我们不将其添加为答案(我已标记)。取而代之的是把问题添加到上面。但在你这么做之前,有一个提示:为了更快地获得更好的帮助,请添加一个or。