이 코드를 사용하면 JScrollPane
안에 버튼을 쉽게 만들 수 있습니다. 나는 스크롤 창을 사용했는데, 장래에 버튼이 많을 것이기 때문입니다.JScrollPane의 JPanel 위치
버튼이있는 경우에만 JPanel
이 표시되며, 스크롤 창 가운데에 표시됩니다. 대신 상단에 표시되어야합니다.
할 수 있습니까? 뱀장어 응답의 호버 전체를 기반으로 편집
JPanel pane = new JPanel(new GridBagLayout());
JButton button;
pane.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
button = new JButton("Button 1");
c.weightx = 0.5;
c.gridx = 0;
c.gridy = 0;
pane.add(button, c);
button = new JButton("Button 2");
c.gridx = 0;
c.gridy = 1;
pane.add(button, c);
button = new JButton("Button 3");
c.gridx = 1;
c.gridy = 1;
pane.add(button, c);
button = new JButton("Long-Named Button 4");
c.ipady = 40;
c.weightx = 0.0;
c.gridwidth = 3;
c.gridx = 0;
c.gridy = 2;
pane.add(button, c);
jScrollPane2.setViewportView(pane);
는
내가 여러 JPanel의에 대한 생 코드를 생성하지만, JPanel의 볼 수평이 아닌 수직으로 위치 :
JPanel pane = new JPanel(new GridBagLayout());
for (int i = 0; i < 100; i++) {
JButton button;
pane.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
button = new JButton("Button 1");
c.weightx = 0.5;
c.gridx = 0;
c.gridy = 0;
pane.add(button, c);
button = new JButton("Button 2");
c.gridx = 0;
c.gridy = 1;
pane.add(button, c);
button = new JButton("Button 3");
c.gridx = 1;
c.gridy = 1;
pane.add(button, c);
button = new JButton("Long-Named Button 4");
c.ipady = 40;
c.weightx = 0.0;
c.gridwidth = 2;
c.gridx = 0;
c.gridy = 2;
pane.add(button, c);
}
JPanel borderLayoutPanel = new JPanel(new BorderLayout()); // wrapper JPanel
borderLayoutPanel.add(pane, BorderLayout.PAGE_START); // add pane to the top
jScrollPane2.setViewportView(borderLayoutPanel);
'c.gridwidth = 3;'논리가 무엇입니까? 나는'c.gridwidth = 2; '가 더 적절하다고 생각했을 것이다. BTW -보다 나은 도움을 받으려면 [MCVE] 또는 [Short, Self Contained, Correct Example] (http://www.sscce.org/)를 게시하십시오. –