JScrollPane中具有空布局的JPanel - 不要看元素

时间:2016-07-04 16:35:10

标签: java swing jpanel jscrollpane null-layout-manager

我想用.setLocation(x, y)

设置每个元素位置

我需要JPanel中的JScrollPane。但是当我向JPanel添加组件时,只显示按钮。但不是JLabel

以下方法是在JFrame构造函数中调用:

private void initGUI_test() {
    this.setSize(950, 700);
    this.setResizable(false);
    this.getContentPane().setLayout(null);

    JScrollPane mainScroll = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    JPanel container = new JPanel();

    mainScroll.setSize(900,500);
    mainScroll.setLocation(0,100);
    mainScroll.setBorder(BorderFactory.createLineBorder(Color.blue));
    mainScroll.add(container);

    container.setLayout(null);
    container.setLocation(0, 0);
    container.setSize(900, 500);

    JLabel rowA = new JLabel();
    rowA.setSize(180, 26);
    rowA.setLocation(10, 100);
    rowA.setText("Row A");

    JButton loadButton = new JButton();
    loadButton.setSize(180, 34);
    loadButton.setLocation(290, 110);
    loadButton.setText("Load file");

    container.add(rowA);
    container.add(loadButton);

    this.getContentPane().add(mainScroll);
}

1 个答案:

答案 0 :(得分:2)

虽然我完全同意@Frakcool关于SELECT gene_symbol FROM my_table GROUP 1 LIMIT 15; SELECT p.gene_symbol FROM (SELECT gene_symbol FROM my_table GROUP 1) AS p ORDER BY 1 DESC|ASC LIMIT 15; ,但您面临的问题有不同的来源。您不应将组件直接添加到null layout,而应添加到JScrollPane的{​​{1}}。

JScrollPane行应为ViewPort