嗨我正在寫一個簡單的程序來顯示一個框架。 然而,當我輸入setLayout(null); 但是,如果我忽略此命令,該按鈕始終在頂部中心 有人能指出我的錯誤嗎?JFrame非常小,使用空佈局
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
class theframe {
private static void create() {
JFrame frame = new JFrame("FrameDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Insets insets = frame.getInsets();
frame.setSize(500 + insets.left + insets.right, 350 + insets.top + insets.bottom);
add(frame.getContentPane()); //my function add
frame.pack();
frame.setVisible(true);
}
public static void add(Container pane) {
pane.setLayout(null);
Insets insets = pane.getInsets();
JPanel p1 = new JPanel();
p1.setPreferredSize(new Dimension(500, 350));
JButton b1 = new JButton("one");
Dimension size = b1.getPreferredSize();
b1.setBounds(25 + insets.left, 5 + insets.top, size.width, size.height);
pane.add(p1);
p1.add(b1);
}
public static void main(String Args[]) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
create();
}
});
}
}
規則似乎是「沒有沒有LayoutManager的用戶界面」。 –
嘗試在打包後設置「JFrame」的大小。否則'pack()'會重置你的大小。 –
對不起,我不明白。 我正在從oracle教程學習和使用空佈局 我不知道爲什麼它發生我的運行 –