Ich versuche, einen Application Launcher für mein Klassenprojekt zu erstellen.Erstellen Sie eine neue Instanz von JLabel und actionlistener in der Schleife
Ich versuche, eine Funktion zu implementieren, die jede Zeile aus einer Textdatei nehmen und es zu einem JLabel
setzen und ein ActionListener
jedes Mal hinzufügen, wenn die Schleife ausgeführt wird. Am Ende der Schleife zeigte es alle JLabels
, aber wann immer ich auf irgendeinen klickte, würde es öffnen, was auch immer Programm in einer Datei zuletzt war.
Meine Frage ist, wie kann ich es machen, wo ich auf einen Programmnamen klicken und die richtige Datei öffnen kann?
Hier ist der Code, den ich habe:
public static void list()
{
String file = "files/programList.txt";
//final Scanner read = new Scanner(file);
String filePath;
String content;
String line = "";
content = "<html>";
int count = 0, i = 0, y = 0;
int x = 0;
lines = 0;
try
{
FileReader read = new FileReader(file);
LineNumberReader lRead = new LineNumberReader(
new FileReader(new File("files/programList.txt")));
lRead.skip(Long.MAX_VALUE);
BufferedReader bRead = new BufferedReader(read);
int numbOfLines = lRead.getLineNumber() + 1;
System.out.println(numbOfLines);
fixedLine = new ArrayList<String>(lRead.getLineNumber());
while((line = bRead.readLine()) != null)
{
int index = -1;
if(lines != numbOfLines)
{
if(lines == 0)
{
fixedLine.add(line);
lines = 1;
}
else
{
fixedLine.set(lines++, line);
//fixedLine = line;
//pLine = new JLabel(fixedLine);
//pLine.setFont(new Font("Verdana", 1, 20));
//pLine.setForeground(Color.WHITE);
//pLine.addMouseListener(new MouseAdapter()
//{
// public void mouseClicked(MouseEvent e)
//{
// fileList.run(pLine.getText());
// System.out.println(pLine.getText());
//}
//});
//panel.add(pLine);
//frame.repaint();
//frame.revalidate();
content = content + line + "<br>";
System.out.println(lines);
System.out.println(fixedLine);
}
}
else
{
lines++;
}
}
bRead.close();
lRead.close();
content = content + "</html>";
System.out.println(fixedLine.get(0));
System.out.println(numbOfLines);//maybe use array or arraylist
}
catch(IOException e)
{
System.err.println(e.getMessage());
}
}
ich mit einem String Arraylist experimentierte und bekam es nur ein Programm hinzufügen, bevor es mir einen Fehler gibt.
Was kann ich tun, damit es funktioniert?
Nachdem ich das Programm bekommen arbeiten werde ich meinen Code vereinfachen und zu verbessern, wie ich meine Codierung wissen, ist nicht die beste
', bevor es gibt mir eine error' definiert sind, wenn Sie wollen, dass Leute mit dem Fehler helfen, den Sie bekommen, zeigen Sie ihnen den Fehler, den Sie erhalten – SomeJavaGuy
nicht wirklich verstehen, was Sie versuchen, aber ersetzen Sie zuerst die fixedLine.set (..) mit fixedLine.add (..) um eine ArrayIndexOutOfBoundsException zu vermeiden – clic
@clic Ich habe das schon mal probiert und es würde immer nur die letzte Zeile der Textdatei in das Array geschrieben. Ich habe versucht, die fixedLine.add() vor der While-Schleife, so dass es etwas in das Array während der Schleife, und wie im Code gesehen, versuchte eine if-Anweisung. Ich habe nicht mit vielen Arrays vor – feare56