의 크기 스트레칭,하지만 난 스크롤을 채우기 위해 프레임을 스트레칭으로는 JTable의 스트레칭하지 않습니다JTable는, 다음과 같은 구성 요소가 나중에 JFrame의 추가됩니다 ScrollPane에
public class TableView extends JPanel {
public TableView(TableModel model) {
JTable table = new JTable(model) {
@Override
public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
Component c = super.prepareRenderer(renderer, row, column);
TradeTableModel model = (TradeTableModel) getModel();
if ((Boolean) model.getValueAt(row, model.findColumn("Select"))) {
Side s = (Side) model.getValueAt(row, model.findColumn("Side"));
if (s == Side.BUY)
c.setBackground(Color.BLUE);
else
c.setBackground(Color.red);
} else {
c.setBackground(Color.white);
}
return c;
}
};
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
table.setFillsViewportHeight(true);
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);
}
}
내가 추가 :
super(new GridLayout(1, 0));
그리고 문제가 해결되었습니다. 하지만 레이아웃이 필요한 이유는 무엇입니까? super()를 호출 할 때 인스턴스화되는 기본 레이아웃이 없습니까? 나는 단순히 첫 번째 버전
편집에 스크롤 창의 크기에 스트레칭 표를 중지 알고 싶어 : 고정 코드 만 형식으로 만 제출 텍스트를 추가해야합니다/
레이아웃은 구성 요소를 상위 구성 요소의 크기만큼 늘립니다. 크기 또는 레이아웃이 설정되어 있지 않은 경우, JScrollPane는 항상 최소 크기로 축소됩니다. – Stephan