수평 스크롤 바가있는 jtable
-
20-09-2019 - |
문제
필요할 때마다 수평 스크롤 바를 가능하게하는 방법이 있습니까?
상황은 다음과 같습니다. 나는 a JTable
, 세포 중 하나는 긴 길이의 데이터를 저장했습니다. 따라서 수평 스크롤 바가 필요합니다.
누구든지 이것에 대한 아이디어가 있습니까?
해결책
먼저 추가하십시오 JTable
내부 a JScrollPane
스크롤 바의 존재에 대한 정책을 설정하십시오.
new JScrollPane(myTable, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
그런 다음 Jtable이 AUTO_RESIZE_OFF
방법:
myJTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
다른 팁
설정 AutoResizeMode
에게 OFF
의 속성에서 jTable
참고로 다음은 다음과 같습니다 최소한의 예 의 받아 들여진 접근. 더구나,
다음과 같이 개별 열의 크기를 조정할 수 있습니다. 열 너비 설정 및 변경, 만큼 잘 여기 그리고 여기.
다음과 같이 둘러싸는 스크롤 창의 전체 크기를 조정할 수 있습니다. 스크롤에 정통한 클라이언트 구현, 만큼 잘 여기 그리고 여기.
import java.awt.Dimension;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;
/**
* @see https://stackoverflow.com/a/37318673/230513
*/
public class Test {
private void display() {
JFrame f = new JFrame("Test");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
TableModel model = new AbstractTableModel() {
private static final int N = 32;
@Override
public int getRowCount() {
return N;
}
@Override
public int getColumnCount() {
return N;
}
@Override
public Object getValueAt(int rowIndex, int colIndex) {
return "R" + rowIndex + ":C" + colIndex;
}
};
JTable table = new JTable(model) {
@Override
public Dimension getPreferredScrollableViewportSize() {
return new Dimension(320, 240);
}
};
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
f.add(new JScrollPane(table));
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Test()::display);
}
}
나에게 그것은 효과가있다 :
Table.SetAutoScrolls (True);
제휴하지 않습니다 StackOverflow