[英]How do I display an array on a Jtable in Java?
我編寫了一個Java程序,使用數組和循環顯示十個學生的成績。 如何在JTable
顯示結果?
import java.awt.*;
import javax.swing.*;
public class StaticTable extends JFrame {
// constructor that will display a JTable based on elements received as arguments
StaticTable(Object[][] rows, String[] header) {
super("Bugema Gades for Java class");
// JPanel to horl the JTable
JPanel panel = new JPanel(new BorderLayout());
// constructor of JTable with a fix number of objects
JTable table = new JTable(rows, header);
panel.add(new JScrollPane(table));
add(panel); // adding panel to frame
// and display it
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
pack();
}
// to run the whole thing
public static void main(String[] args) {
int MAX_STUDENTS = 10;
String[] Names = new String[MAX_STUDENTS];
double [] arrMark = new double[MAX_STUDENTS];
String grade = "";
for (int i = 0; i < MAX_STUDENTS; i++)
{
Names[i] = JOptionPane.showInputDialog("Enter Student Name: ", i + 1);
String Mk = JOptionPane.showInputDialog("Enter Student Mark: ", i + 1);
arrMark[i] =Integer.parseInt(Mk);
}
for (int i = 0; i < MAX_STUDENTS; i++)
{
if(arrMark[i] > 100)
grade = "Error: Invalid entry";
else if(arrMark[i] > 80)
grade = "A";
else if(arrMark[i] > 75)
grade = "B+";
else if(arrMark[i] > 70)
grade = "B";
else if(arrMark[i] > 65)
grade = "C+";
else if(arrMark[i] > 60)
grade = "C";
else if(arrMark[i] > 55)
grade = "D+";
else if(arrMark[i] > 50)
grade = "D";
else
grade = "F";
Object[][] data = {
{1+i,Names[i],arrMark[i],grade}
};
// defines the header
String[] header = {"NO","Name","Mark","Grade"};
// build the GUI
new StaticTable(data, header);
}
// defines rows and column of the JTable
}
}
不要嘗試創建2D陣列。 不要將自己限制為固定的行數。 而是創建一個空的DefaultTableModel,然后一次將數據添加到其中一行。
該代碼將類似於:
String[] header = {"NO","Name","Mark","Grade"};
DefaultTableModel model = new DefaultTableModel(header, 0);
for (int i = 0; i < MAX_STUDENTS; i++)
{
...
model.addRow( new Object[]{ 1+i, Names[i], arrMark[i], grade} );
}
JTable table = new JTable(model );
同樣,變量名稱(如“名稱”)不應以大寫字母開頭。 您的大多數變量都是正確的。 保持一致並遵循Java約定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.