1
私は少し問題があるので、私はこのプログラムで作業していましたが、何らかの理由でnullポインタ例外がスローされます。私はそれが動作するようになっているが、作成しようとしている私のJTable、空白のウィンドウが表示されず、ちょうどクラッシュするコードが含まれている場合は表示されません....スレッド「AWT-EventQueue-0」の例外java.lang.NullPointerExceptionとJTableの問題
package assignment;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class FilmView extends JPanel
{
public Object[][] filmArray;
private FilmDataBase filmModel;
JTable table;
//constructor
public FilmView(FilmDataBase filmModel)
{
super();
this.filmModel = filmModel;
FilmDataBase filmData = new FilmDataBase();
filmArray = filmData.getArray();
setLayout(new FlowLayout());
//Column Headers
String[] columnHeaders = {"Title", "Date", "Director", "Rating", "Genre", "Cast"};
table = new JTable(filmArray, columnHeaders);
table.setPreferredScrollableViewportSize(new Dimension(500,80));
table.setFillsViewportHeight(true);
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);
}
}
package assignment;
import java.awt.BorderLayout;
import javax.swing.JFrame;
public class AppController extends JFrame
{
/**
*
*/
private static final long serialVersionUID = 1L;
private FilmView view;
private FilmDataBase filmModel;
public AppController(String string)
{
super(string);
this.filmModel = new FilmDataBase();
this.view = new FilmView(this.filmModel);
getContentPane().add(view, BorderLayout.CENTER);
setSize(1000, 800);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String [] args)
{
JFrame c = new AppController("FilmDataBase");
c.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
c.setSize(600, 200);
c.setVisible(true);
}
}
package assignment;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
public class FilmDataBase
{
private Scanner scanner = new Scanner(System.in);
Scanner fileScan;
private int film;
Object filmData[][];
private int filmDetails;
public void initaliseFilmData() throws IOException, InterruptedException
{
Scanner scanner = new Scanner(System.in);
film = 4;
filmDetails = 6;
filmData = new Object[film][filmDetails];
Scanner fileScan;
fileScan = new Scanner(new File("input/filminformation.txt"));
for(int x = 1; x < film; x++)
{
for(int y = 1; y < filmDetails; y++)
{
if(y == 5)
{
filmData[x][y] = fileScan.nextLine();
fileScan.nextLine().split(", ");
}
else if(y == 6)
{
filmData[x][y] = fileScan.nextLine();
fileScan.nextLine().split(", ");
}
else
{
filmData[x][y] = fileScan.nextLine();
}
}
}
fileScan.close();
}
public Object[][] getArray()
{
return filmData;
}
enter code here
}
"pack"をどこかに呼び出すべきではありませんか?例を参照してください。https://docs.oracle.com/javase/tutorial/displayCode.html?code=https://docs.oracle.com/javase/tutorial/uiswing/examples/start/HelloWorldSwingProject/src/start/HelloWorldSwing .javaまた、そのトレイルを見てください。https://docs.oracle.com/javase/tutorial/uiswing/ – Fildor