私は何時間もこれに取り組んできましたが、困惑しています。JFrame 内に JPanel を追加するこのコードがあります。問題は、Frame を設定すると FrameFree Design
に表示されないことです。フレームをBorder Layout
コードに設定すると、正常に動作します。私がやりたいのはFree Design
、JPanel を好きなように配置してサイズを変更できる場所でこれを機能させることです。フレームに配置する次のコードを次に示します。
canvas = new Canvas();
canvas.setVisible(true);
canvas.setImage(file);
GroupLayout canvasLayout = new GroupLayout(canvas);
canvas.setLayout(canvasLayout);
canvas.setPreferredSize(new Dimension(100, 100));
//canvas.setSize(200,200);
//canvas.setPreferredSize(null);
add(canvas);
revalidate();
フリー デザイン モードを使用すると何が足りないのですか? レイアウトを構築するコードは次のとおりです。
private void initComponents() {
jInternalFrame1 = new javax.swing.JInternalFrame();
jInternalFrame1.setVisible(true);
javax.swing.GroupLayout jInternalFrame1Layout = new javax.swing.GroupLayout(jInternalFrame1.getContentPane());
jInternalFrame1.getContentPane().setLayout(jInternalFrame1Layout);
jInternalFrame1Layout.setHorizontalGroup(
jInternalFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
jInternalFrame1Layout.setVerticalGroup(
jInternalFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("PocketShop");
setName("main");
pack();
}