В следующем коде показана ошибка, которую я пытаюсь исправить. У меня есть два способа отображения таблицы (иерархии ниже):Качели: похоже, что JTable не может правильно показать
JTable непосредственно в JOptionPane: показывает таблицу штрафа.
JOptionPane JTable
JTable в ScrollPane в JPanel в JOptionPane: не могу показаться, чтобы показать таблицу.
JOptionPane JPanel JScrollPane JTable
Поскольку это та же функция, чтобы создать таблицу, я довольно уверен, что я просто делаю что-то неправильно ж/г/т замасливающей/макете. Какие-либо предложения?
import java.awt.Dimension;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
public class TableTest2 {
public static void testTable(JTable t) {
t.setModel(new AbstractTableModel() {
public String getColumnName(int col) { return "col"+Integer.toString(col); }
public int getRowCount() { return 4; }
public int getColumnCount() { return 4; }
public Object getValueAt(int row, int col) {
return Integer.toString(row*col);
}
public boolean isCellEditable(int row, int col) { return false; }
public void setValueAt(Object value, int row, int col) { }
});
}
public static void main(String[] args) {
doTest1();
doTest2(null, null);
doTest2(new Dimension(500,500), null);
doTest2(new Dimension(500,500), new Dimension(400,400));
}
private static void doTest1() {
JTable t = new JTable();
t.setPreferredSize(new Dimension(500,500));
TableTest2.testTable(t);
JOptionPane.showMessageDialog(null, t, "test1", JOptionPane.INFORMATION_MESSAGE);
}
private static void doTest2(Dimension d1, Dimension d2) {
JTable t = new JTable();
TableTest2.testTable(t);
JPanel panel = new JPanel();
JScrollPane sp = new JScrollPane();
sp.add(t);
if (d1 != null)
sp.setPreferredSize(d1);
panel.add(sp);
if (d2 != null)
panel.setPreferredSize(d2);
JOptionPane.showMessageDialog(null, panel, "test2", JOptionPane.INFORMATION_MESSAGE);
}
}
Ха. Это работает. Зачем? –
А, ваше редактирование ясно. Благодаря! –
@Jason S Нет проблем. Рад помочь. –