của tôi có một mã mẫu:setSize không ảnh hưởng đến kích thước nút
import java.awt.*;
import javax.swing.*;
import javax.swing.border.BevelBorder;
public class AWT extends JFrame {
public static void main(String[] args) {
final JFrame frame = new JFrame();
frame.setPreferredSize(new Dimension(600, 450));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBackground(Color.green.darker());
Button btn_1 = new Button("Button 1");
btn_1.setBackground(Color.green.darker());
btn_1.setSize(40, 100);
Button btn_2 = new Button("Button 2");
btn_2.setBackground(Color.green.darker());
btn_2.setSize(40, 100);
Button btn_3 = new Button("Button 3");
btn_3.setBackground(Color.green.darker());
btn_3.setSize(40, 100);
JPanel players = new JPanel(new GridLayout(1, 3));
players.add(btn_1);
players.add(btn_2);
players.add(btn_3);
players.setBackground(Color.green.darker());
players.setPreferredSize(new Dimension(450, 80));
JPanel game = new JPanel();
game.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
game.setBackground(Color.green);
game.setPreferredSize(new Dimension(600, 370));
JPanel content = new JPanel();
content.setLayout(new BorderLayout());
frame.setContentPane(content);
content.add(players, BorderLayout.NORTH);
content.add(game, BorderLayout.SOUTH);
frame.pack();
frame.setVisible(true);
}
}
này kết quả là mang lại cho tôi một cửa sổ như:
alt text http://img710.imageshack.us/img710/1573/21672037.gif
, trong khi nó nên kết quả trong một cái gì đó giống như này:
alt text http://img686.imageshack.us/img686/8948/44650673.gif
Tại sao nó không được hiển thị theo cách này?
đây là một giải pháp tốt cũng cho bố trí. mặc dù setPreferredSize thực hiện một phần kích thước của phép thuật. –
@BalintPato: Điểm tốt; thêm [ở đây] (http://stackoverflow.com/q/7229226/230513). – trashgod