Display txt file on Java panel
Hello I want to display my txt file but probably something is wrong! Any help? Here is my code:
public class Display extends Items{
public int countLines(String filename){
int lines = 0; //mporei na metrhsei mexri "int" grammes (~2.1 dis grammes)
try {
// Open the file that is the first command line parameter
FileInputStream fstream = new FileInputStream(filename);
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
lines++;//metrhths grammwn/eggrafwn
}
//close input stream
} catch (Exception e) {//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
return lines;}
public String[] showAllRegisteredLessons(String filename, int size) {
String[] temp = new String[size+1]; //mexri "size" kataxwrhseis ma8hmatwn dld (mege8os "int")
try {
int x = 0;
// Open the file that is the first command line parameter
FileInputStream fstream = new FileInputStream(filename);
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
//System.out.println(strLine.replace("#", " "));
temp[x] = strLine;
x++;
}
//close input stream
} catch (Exception e) {//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
return temp;
}
public JPanel pinakas(String[] pinaka) {
int sr = 0;
//int ari8mos =0;
String[] COLUMN_NAMES = {"Κωδικός", "Ποσότητα", "Τιμή", "Περιγραφή", "Μέγεθος", "Ράτσα"};
//pio panw mporoume na pros8esoume ws prwto column to "#", wste na deixnei ton ari8mo ths ka8e kataxwrhshs
DefaultTableModel modelM = new DefaultTableModel(COLUMN_NAMES, 0);
JTable tableM = new JTable(modelM);
JPanel mainPanel = new JPanel(new BorderLayout());
mainPanel.add(new JScrollPane(tableM), BorderLayout.CENTER);
Display disp = new Display();
while (pinaka[sr] != null) // !!!!tha ektupwsei kai mia parapanw "/n" logo ths kataxwrhshs prwtou h teleytaiou mahmatos
{
String[] temp5 = disp.lineDelimiter(pinaka[sr],6, "#");
Object[] doge = { temp5[0], temp5[1], temp5[2], temp5[3], temp5[4], temp5[5],temp5[6]};//edw mporoume sthn arxh na valoume to ari8mos gia na fainetai o ari8mos twn kataxwrhsewn
modelM.addRow(doge);
sr++;
//ari8mos++;
}
return mainPanel;
}
and in main()
if(category31=="ΣΚΥΛΟΙ"){
Display disp= new Display();
int numberofline=disp.countLines("Dogss.txt");
String[] tempΜ1 = disp.showAllRegisteredLessons("Dogss.txt",numberofline);
//System.out.println(numberofline);
JOptionPane.showMessageDialog(null, disp.pinakas(tempΜ1), "Καταχωρημένα Kατοικίδια", JOptionPane.PLAIN_MESSAGE);
break;
}
I get this error:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at progra开发者_运维百科m.Display.pinakas(Display.java:83)
at program.Main.main(Main.java:334)
I bet the problem is in the following lines (which is probably line 83..):
String[] temp5 = disp.lineDelimiter(pinaka[sr],6, "#");
Object[] doge = { temp5[0], temp5[1], temp5[2], temp5[3], temp5[4], temp5[5],temp5[6]};
The array has only 6 elements. But you are accessing the 7th element with:
temp5[6]
That's why you get the ArrayIndexOutOfBoundsException.
精彩评论