我的班级create()
中有一个名为Table.java
的方法创建了一个JTable。
但我想知道如何添加一行,以及如何从其他类修改标题(使用Table.addRow()
和Table.setTitle()
之类的方法),因为我找不到它从30分钟开始在Google上,我不知道怎么做,因为我没有用Java进行过实验,认为我是初学者。
这是我的Table.java
课程,其中包含create()
方法:
package fr.laiteux.test.gui;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
public class Table{
public static void create(String name, double version, String author, int largeur, int hauteur){
JFrame frame = new JFrame(String.format(name + " " + version + " by " + author));;
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setSize(largeur, hauteur);
Container container = frame.getContentPane();
DefaultTableModel model = new DefaultTableModel(new Object[]{"Username", "Email", "Name", "Birthday", "Phone"}, 0);
JTable table = new JTable(model);
table.setVisible(true);
JScrollPane scrollPane = new JScrollPane(table);
table.setFillsViewportHeight(true);
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment(SwingConstants.CENTER);
table.getColumnModel().getColumn(1 - 1).setCellRenderer(centerRenderer);
table.getColumnModel().getColumn(2 - 1).setCellRenderer(centerRenderer);
table.getColumnModel().getColumn(3 - 1).setCellRenderer(centerRenderer);
table.getColumnModel().getColumn(4 - 1).setCellRenderer(centerRenderer);
table.getColumnModel().getColumn(5 - 1).setCellRenderer(centerRenderer);
TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(table.getModel());
table.setRowSorter(sorter);
container.add(scrollPane);
frame.setVisible(true);
}
}
答案 0 :(得分:1)
由于这是一个简单的方法,你只需要编写它。
public class Table{
....
public static setTitle(String title){
...
}
...
}
当然,为了能够更新此范围之外的实例,您需要更新当前方法以存储实例。
由于您处于静态环境中,只需执行
public class Table{
private static Jframe frame;
private static JTable table;
public static void create(String name, double version, String author, int largeur, int hauteur){
frame = new JFrame(String.format(name + " " + version + " by " + author));; // Not that I remove the declaration here to use the global variable
当然,使用实例变量会更好,但是你使用静态方法,所以我会这样离开