質問が重複する可能性として同定されている:JTable内部にJScrollpaneが自動サイズ変更されません。回避する?
JPanel Window not scaling when resize the main frame
そのトピックに問題がJPanelのサイズを変更しないということですので、私は、同意しません。私の場合、JPanelに問題はありませんが、JScrollPaneのサイズが変更されていません!
私はJFrame
を持っています。があり、JScrollpane
を含み、JTable
を含んでいます。
問題がJFrame
のサイズが変更された場合、JScrollpane
はスクロールペインもウィンドウ内に収まるか、本当に大きなないようにJFrame
は、本当に小さくするとは関係ありません、同じままということ、です。
JScrollpane
は、ウィンドウのサイズ変更によって調整されるJPanel
に従って調整します。 JScrollPane
の中でJTextArea
を使用して同じことを行うと、すべてうまく動作します。JPanel
はスクロールペインのサイズを変更します。
JTable
がJScrollPane
の自動サイズ変更を破棄して回避する理由を知っていますか? LayoutManager
は何とか正しく処理できません...(何が起こっているかを示す画像を追加しようとしましたが、まだ十分な評判がありません...)
ここにコードがあります:そのトピックに問題がJPanelのサイズを変更しないということですので、
JFrame tableFrame = new JFrame("Test Table");
editPanel vadEditPane;
vadEditPane = new editPanel(vadData);
vadEditPane.setOpaque(true); //content panes must be opaque
tableFrame.getContentPane().add(vadEditPane, BorderLayout.CENTER);
public class editPanel extends JPanel {
public editPanel(dataConv vadData){
JTable vadTable;
String[] columnNames = {---SOME COLUMN NAMES---};
Object[][] data = {---SOME DATA---};
vadTable = new JTable(data, columnNames);
vadTable.setPreferredScrollableViewportSize(new Dimension(500, 70));
vadTable.setFillsViewportHeight(true);
vadTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JScrollPane scrollPane = new JScrollPane(vadTable);
scrollPane.setBackground(Color.RED);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
add(scrollPane);
setBackground(Color.ORANGE);
}
}
JFrameのような 'BorderLayout'ではなく、' JPanel'のデフォルトレイアウトをチェックしてください。 – AxelH
メインフレームのサイズを変更したときに[JPanelウィンドウの拡大/縮小ができません](http://stackoverflow.com/questions/33433485/jpanel-window-not-scaling-when-resize-the-main-frame) – AxelH