开发者

Display txt file on Java panel

开发者 https://www.devze.com 2023-03-05 18:44 出处:网络
Hello I want to display my txt file but probably something is wrong! Any help? Here is my code: public class Displayextends Items{

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消