Witam
Probuje odczytac plik do JTable i problem mam taki ze JTable ma podana jedna stala Jtable[5][x] oraz zmienna x(ustawiony na 0) przez ktora program nie odpala mi tabeli, drugi problem jest taki ze wczytuje dane z pliku ktory wstepnie przygotowalem i program nie chce tego mi wrzucic do tabeli, nie wiem gdzie popelniam blad choc ogolnie tez dopiero zaczynam zabawe z swingiem wiec za duzo nie wiem
import javax.swing.*;
import java.awt.event.ActionEvent;
import javax.swing.JMenuBar;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class GUI extends DefaultTableModel {
JMenuItem Wczytaj, Zapisz;
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
public static void createAndShowGUI() {
JMenu menuOption, menuSorting;
String[][] dane = new String[5][5];
JPanel panel = new JPanel();
JFrame main = new JFrame();
main.setTitle("music player");
main.setBounds(450, 100, 1024, 768);
main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
main.setResizable(true);
main.setVisible(true);
JMenuBar menuBar = new JMenuBar();
menuOption = new JMenu("Menu");
JMenuItem Wczytaj = new JMenuItem("Wczytaj");
JMenuItem Zapisz = new JMenuItem("Zapisz");
//Zapisz.addActionListener(this);
/*
Zapisz.addActionListener(e -> {
JFileChooser zapisz = new JFileChooser();
if (zapisz.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {
File plik = zapisz.getSelectedFile(); }
});
*/
menuOption.add(Wczytaj);
menuOption.addSeparator();
menuOption.add(Zapisz);
menuSorting = new JMenu("Sorting");
JRadioButtonMenuItem alfabetycznie = new JRadioButtonMenuItem("Alfabetycznie");
JRadioButtonMenuItem rokwydania = new JRadioButtonMenuItem("Dacie wydania");
JRadioButtonMenuItem dlugosc = new JRadioButtonMenuItem("Dlugości");
menuSorting.add(alfabetycznie);
menuSorting.addSeparator();
menuSorting.add(rokwydania);
menuSorting.addSeparator();
menuSorting.add(dlugosc);
JPopupMenu Editable = new JPopupMenu();
JMenuItem editable = new JMenuItem("Edytuj");
Editable.add(editable);
main.setJMenuBar(menuBar);
menuBar.add(menuOption);
menuBar.add(menuSorting);
MyTableModel Table = new MyTableModel();
Wczytaj.addActionListener(e -> Table.Wczytaj());
Table.Show(main);
}
}
classa Lista
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import java.awt.*;
import java.awt.geom.AffineTransform;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
class MyTableModel {
int q = 0;
void Create(int x){
String[] Column = {"Tytuł", "Czas trwania", "Twórca", "Data premiery", "gatunek"};
Object[][] data = new Object[x][5];
JTable jt = new JTable(data, Column);
JScrollPane sp = new JScrollPane(jt);
}
void Show(JFrame x){
String[] Column = {"Tytuł", "Czas trwania", "Twórca", "Data premiery", "gatunek"};
Object[][] data = new Object[q][5];
JTable jt = new JTable(data, Column);
JScrollPane sp = new JScrollPane(jt);
sp.setVisible(true);
x.add(sp);
}
void Wpisz(){
}
void Wczytaj(){
{JFileChooser wczytaj = new JFileChooser();
if (wczytaj.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
File plik = wczytaj.getSelectedFile();
try {
Scanner skaner = new Scanner(plik);
int i = 0;
while (skaner.hasNextInt()) {
i++;
}
q = i;
i = 0;
while (skaner.hasNextLine()){
String s = skaner.nextLine();
String holder [] = s.split("-");
holder[4] = holder[3].replace(",",".");
String nazwa = holder[0];
String CzasTrwania = holder[1];
String wykonawca = holder[2];
String Premiera = holder[3];
String Rodzaj = holder[4];
for(int b = 0; b > 4; b++) {
jt.setValueAt(holder[b], b, i);
}
}
skaner.close();
}
catch (FileNotFoundException ex) {
ex.printStackTrace();
}
}};
}
}