私のクラスプロジェクトのアプリケーションランチャーを作成しようとしています。ループ内にJLabelとactionListenerの新しいインスタンスを作成します
私は、テキストファイルから各行を取り出してJLabel
に置き、ループが実行されるたびにActionListener
を追加する関数を実装しようとしています。ループの最後にはJLabels
がすべて表示されていましたが、クリックするたびにファイル内の最後のプログラムが開きます。
私の質問は、プログラム名をクリックして正しいファイルを開くことができます。私は、文字列のArrayListを使って実験し、唯一のそれは私にエラーを与える前に、一つのプログラムを追加するためにそれを得た
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());
}
}
:
ここで私がやったコードです。
私はそれを動作させるために何ができますか?私は私のコーディングだからあなたはJLabelの、ファイルから読み込ん何かをクリックしたときに何かを実行したい最高の
'それは私にERROR'を与える前に、もし人々は、あなたが得ているエラーを手助けしてくれるように、 – SomeJavaGuy
が実際に何をしようとしているのか理解していないが、最初にfixedLine.set(..)をfixedLine.add(.. )ArrayIndexOutOfBoundsExceptionを避けるために – clic
@ cyclic私はこれを試してみました。そして、それは常にテキストファイルの最後の行を配列に置きます。 whileループの前にfixedLine.add()を入れて、ループ中に配列内に何かがあるようにしてみました。コードに見られるように、if文を試しました。以前は多くの配列で作業していませんでした – feare56