이 코드는 내가 작업중인 다른 프로젝트에 대한 훨씬 더 큰 문제를 해결하기 위해 이해해야 할 바보 같은 예제입니다. 버튼이 JPanel에 추가되어야합니다. JScrollPane을 모두 함께 표시 할 수는 없으므로 JScrollPane을 추가하기로 결정했지만 이상한 일이 발생합니다. 19 개만 표시되며 이유를 이해할 수 없습니다. 크기 행렬에는 23 행에 대해 1 열이 있으므로 올바른 것입니다. 왜 이런 일이 일어나는 지 아십니까? 감사합니다자바 스윙 : JScrollPane이있는 JPanel에 추가되지 않은 구성 요소
package proveGUI;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
import layout.TableLayout;
public class Main {
public static void main(String argv[]) {
JFrame jframe = new JFrame("Protocollo UTL");
//jframe.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
jframe.setSize(1200, 450);
JPanel body = new JPanel();
double[][] size = {
{0.05},
{0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05}
};
body.setLayout(new TableLayout(size));
for(int i=0; i<22; i++) {
body.add(new JButton(String.valueOf(i)), "0,"+String.valueOf(i));
}
JScrollPane scrollPane = new JScrollPane(body,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
jframe.add(scrollPane);
jframe.setVisible(true);
}
}
내가했습니다 이제까지 그것을 사용하지 않았기 때문에 나는 많은 약
TableLayout
를 모르는
사용하려고'body.setLayout (새 BoxLayout에서는 (몸, BoxLayout.Y_AXIS))'대신에'TableLayout' – SeniorJD
작품의'GridBagLayout' – MadProgrammer
@SeniorJD : 덕분에,이 일 것으로 보인다. 차이점과 내가 실수 한 부분을 알려주시겠습니까? 그러나 문제는이 방법으로 하나의 열에 항목을 추가 할 수 있다는 것입니다. 대신 실제 프로젝트에 많은 행과 열이 있습니다. 어떻게해야할까요? –