Изменение размера элемента управления с помощью Java JSplitPane

Пожалуйста, посмотрите мое изображение ниже по ссылке, а затем прочитайте под ней для более подробной информации о моей проблеме.

Образец изображения

Представьте, что это базовая рамка, разделенная на две части с помощью JSplitPane, по умолчанию при изменении размера рамки серая часть меняет свой размер, но я бы хотел, чтобы белая часть изменяла размеры в соответствии с изменением размера рамки.

Буду признателен за любую помощь в правильном направлении, так как я сейчас работаю над проектом, и я пробую всевозможные странные вещи, чтобы подготовиться к моему самому большому проекту, запланированному на новый год.:)

С уважением Терон

1 ответ

Решение

Вам нужно использовать setResizeWeight чтобы получить левую и правую часть, занять дополнительное место или уменьшить размер при изменении размера JFrame, пример кода ниже:

    import java.awt.BorderLayout;

    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JSplitPane;

    public class TestJSplitPane {
    private void init(){
        JFrame frame = new JFrame();
        frame.setLayout(new BorderLayout());
        JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
        splitPane.setRightComponent(new JButton("Here I Am"));
        splitPane.setLeftComponent(new JButton("Me Too"));
        splitPane.setResizeWeight(0.5);
        frame.add(splitPane, BorderLayout.CENTER);
        frame.pack();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        new TestJSplitPane().init();
    }
}

Java Doc для setResizeWeight.

Надеюсь это поможет.

Другие вопросы по тегам