Как показать нулевые значения в JTable? - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть таблица, которая выбирает данные из базы данных.Но в моей базе данных иногда некоторые поля могут иметь нулевые значения, и JTable не показывает эти нулевые значения.Я хочу показать нулевые значения в моей таблице как NA.Как я могу это сделать?

public void displayMovieTable(){
     try {

         PreparedStatement pr = conn.prepareStatement("select * from movie");
         ResultSet s = pr.executeQuery();
         movieTable.setModel(DbUtils.resultSetToTableModel(s));
         pr.close();

     } catch (SQLException ex) {
         Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
     }
}

1 Ответ

0 голосов
/ 17 декабря 2018

Возможно, самой простой может быть конкретная табличная модель, обертывающая JDBC.

Однако общий подход заключается в изменении отображения:

TableCellRenderer old = movieTable.getDefaultRenderer(); // I.o. super?
movieTable.setDefaultRenderer(String.class, new DefaultTableCellRenderer() {
    @Override
    public Component getTableCellRendererComponent(JTable table,
                                           Object value,
                                           boolean isSelected,
                                           boolean hasFocus,
                                           int row,
                                           int column) {
        boolean notAvailable = value == null;
        if (notAvailable) {
            value = "N/A";
        }
        Component compon = super.getTableCellRendererComponent(table,
                                           value,
                                           isSelected,
                                           hasFocus,
                                           row,
                                           column);
        if (notAvailable) {
            compon.setBackground(Color.GRAY);
        }
        return compon;
   }
});

Проблема в том, что может быть несколькорендеры.

...