Когда я прокручиваю вниз в jtable, мои данные исчезают, кто-нибудь может подсказать?

#java #swing #jtable

#java #качать #jtable

Вопрос:

Я взял jtable и добавил к нему модель, а также добавил к ней средство отображения текстовой области и редактор.

 Table.setModel(
  JUTableBindingFactory.createAttributeListBinding(
     Binding, Table name, View name, null, null, attributes));

 Table.getColumnModel()
      .getColumn(i)
      .setCellEditor(
         new TextAreaEditor(
           true, true, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
           JScrollPane.HORIZONTAL_SCROLLBAR_NEVER));

 Table.getColumnModel()
      .getColumn(i)
      .setCellRenderer(
         new TextAreaCellRenderer(
           true, true, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, 
           JScrollPane.HORIZONTAL_SCROLLBAR_NEVER));

 _Table.setRowHeight(100);
 

Также я установил высоту строки таблицы.

Класс средства визуализации текстовой области

  public class TextAreaCellRenderer extends JTextArea implements TableCellRenderer
{
private JScrollPane pane;
private boolean _isEditable = false;
private boolean _isEnabled = false;
private int _verticalBarProperyValue = JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED;
private int _horizontalBarProperyValue = JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED;


public TextAreaCellRenderer()
{
super();
init();
}

 public TextAreaCellRenderer(boolean isEnabled, boolean isEditable, int
             verticalBarProperyValue, int horizontalBarProperyValue)
 {
   super();
_isEditable = isEditable;
_isEnabled = isEnabled;
_verticalBarProperyValue = verticalBarProperyValue;
_horizontalBarProperyValue = horizontalBarProperyValue;
init();
}

private void init()
{
pane = new JScrollPane(this, _verticalBarProperyValue, _horizontalBarProperyValue);
setLineWrap(true);
setWrapStyleWord(true);
setEditable(_isEditable);
setEnabled(_isEnabled);
}


 /**
  * Returns the cell renderer component.
  */
  public Component getTableCellRendererComponent(JTable table, Object value, 
               boolean    isSelected, boolean hasFocus, int row, int column)
  {
setLineWrap(true);
setWrapStyleWord(true);
setText(value != null ? value.toString() : "");
setBackground((isSelected) ? NWSTheme.BLUE_DARK : NWSTheme.WHITE);
setForeground((isSelected) ? NWSTheme.WHITE : NWSTheme.BLACK);
pane.setEnabled(true);
return pane;           
}
 }
 

класс editor также очень похож, но проблема, похоже, не связана с этим, что еще я должен попробовать?

Ответ №1:

Попробуйте переместить горизонтальную прокрутку больше вверх, так как иногда мы этого не делаем, и создается впечатление о том, что вы испытали. Попробуйте хотя бы

Комментарии:

1. НЕТ, когда я прокручиваю вниз, он исчезает, данные больше не отображаются