0
현재 연구를 위해 프로젝트를 진행 중이며 GUI와 관련하여 약간의 문제가 있습니다.BoxLayout이있는 컨테이너의 크기가 구성 요소에 따라 조정되었습니다.
private JButton zoomUp, zoomDown;
private JComboBox fractalList;
private JLabel choice,space;
private JPanel ui,display;
private JFrame window;
public FractalView(FractalModel m, FractalController c, String title, int size_X, int size_Y)
{
window =new JFrame();
window.setTitle(title);
window.setSize(size_X,size_Y);
window.setLocationRelativeTo(null);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setResizable(false);
window.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.anchor=GridBagConstraints.FIRST_LINE_START;
ui=new JPanel();
ui.setBackground(Color.GRAY);
ui.setBorder(BorderFactory.createTitledBorder("Interface de Controle et Options"));
BoxLayout uiLayout = new BoxLayout(ui, BoxLayout.PAGE_AXIS);
ui.setLayout(uiLayout);
ui.setMaximumSize(ui.getPreferredSize());
zoomUp = new JButton("Zoom +");
zoomUp.setAlignmentX(LEFT_ALIGNMENT);
zoomUp.setBorder(BorderFactory.createLineBorder(Color.RED));
ui.add(zoomUp);
zoomDown = new JButton("Zoom -");
//ui.add(zoomDown);
choice = new JLabel("Choisir une fractale : ");
//ui.add(choice);
Object[] elements = new Object[]{"Mandelbrot", "Julia", "Buddhabrot"};
fractalList = new JComboBox<Object>(elements);
//fractalList.setBorder(BorderFactory.createLineBorder(Color.RED));
fractalList.setAlignmentX(LEFT_ALIGNMENT);
fractalList.setMaximumSize(new Dimension(Short.MAX_VALUE,20));
//ui.add(fractalList);
gbc.weighty=1;
gbc.ipadx=300;
gbc.gridheight=1;
gbc.fill=GridBagConstraints.VERTICAL;
gbc.gridx=0;
gbc.gridy=0;
window.add(ui,gbc);
display=new JPanel();
display.setBackground(Color.RED);
gbc.weightx=1;
gbc.gridheight=1;
gbc.gridwidth=1;
gbc.fill=GridBagConstraints.BOTH;
gbc.gridx=1;
gbc.gridy=0;
window.add(display,gbc);
window.setVisible(true);
}
문제는 JPanel ui
에서 온다 : 여기
setMaxSize()
을 사용해 보았지만 크기가 조정 되어도 JPanel display
에 표시하려는 항목에 문제가 발생할 수 있습니다. 다시 GridBagLayout
을 사용하지 않는 것이 좋습니다.
누군가 아이디어가 있습니까?
1) * "여기에 몇 가지 코드가 있습니다."* 더 나은 도움을 받으려면 [MCVE] 또는 [Short, Self Contained, Correct Example] (http://www.sscce.org/)를 게시하십시오. 2) ASCII 아트 또는 GUI의 * 의도 된 * 레이아웃의 간단한 그림을 최소한의 크기로 제공하고, 크기를 조정할 수 있으면 더 많은 너비와 높이로 추가 공간을 사용하는 방법을 보여줍니다. 3) * "다시'GridBagLayout'을 사용하지 않는 것이 좋을 것입니다. * * 읽는 법 *"스크류 드라이버를 피하는 것이 좋을 것입니다. 나사를 망치로 다시 눌러야하나요? "*. 작업에 적합한 도구를 사용하십시오. 나는 이것이 GBL인지 확실하지 않지만 그것을 배제하지 않는다. –