문제

필요할 때마다 수평 스크롤 바를 가능하게하는 방법이 있습니까?

상황은 다음과 같습니다. 나는 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

참고로 다음은 다음과 같습니다 최소한의 예받아 들여진 접근. 더구나,

image

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);

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top