문제

다음은 내가 원하는 것과 가깝고 내가 기대하는 것을합니다.

import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

import net.miginfocom.swing.MigLayout;

public class MigBug extends JFrame {

    public static void main(String args[]) {
        MigBug migbug = new MigBug();
        migbug.pack();
        migbug.setVisible(true);
    }

    public MigBug() {
        JPanel content = new JPanel();
        content.setLayout(new MigLayout("fill, debug"));

        content.add(new JLabel("Label 1"));
        content.add(new JComboBox());

        content.add(new JLabel("Label 2"));
        content.add(new JTextField(25), "growx, wrap");

        content.add(new JLabel("BIG"), "span, w :400:, h :200:, growy");

        setContentPane(content);
    }
}

그러나 다음을 변경하면 다음과 같습니다.

content.add(new JLabel("BIG"), "span, w :400:, h :200:, grow");

즉. x와 y로 자라는 스프레이션 구성 요소를 변경하십시오. 레이블 1 셀은 X로 자랍니다.

누구든지 내가 이것을 돌릴 수있는 방법을 아는 사람이 있습니까?

도움이 되었습니까?

해결책

완전히 만족 스럽지는 않지만 해결 방법을 찾았습니다. 에 따르면 이 포럼 게시물 그리고 이 포럼 게시물, miglayout는 구성 요소 크기 계산에서 스팬이 관련된 열 크기를 계산하는 것까지 전환합니다. 레이아웃 공무원에서 "Fill"을 "Filly"로 바꾸고, 각 열에 "Grow"로 열 제약 조건을 추가하는 것은 그것을 고치는 것 같습니다.

작업 코드 :

import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

import net.miginfocom.swing.MigLayout;

public class MigBug extends JFrame {

    public static void main(String args[]) {
        MigBug migbug = new MigBug();
        migbug.pack();
        migbug.setVisible(true);
    }

    public MigBug() {
        JPanel content = new JPanel();
        content.setLayout(new MigLayout("filly, debug", "[][grow][][grow]"));

        content.add(new JLabel("Label 1"));
        content.add(new JComboBox());

        content.add(new JLabel("Label 2"));
        content.add(new JTextField(25), "growx, wrap");

        content.add(new JLabel("BIG"), "span, w :400:, h :200:, grow");

        setContentPane(content);
    }
}

다른 팁

당신은 또한 내 시도를 시도 할 수 있습니다 matrixlayout 대안으로 레이아웃 관리자. 개념은 MIG 레이아웃 - 테이블 기반과 유사합니다. 그것은 강력하지는 않지만, (어쨌든 나에게) 사용하기가 훨씬 간단한 것 같습니다 (큰 힘은 큰 복잡성이 있습니다). 그러나 솔직히 말해서, 나는 MIG 레이아웃을 이해하려고 노력하지 않았기 때문일 수 있습니다.

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