30/09/2018, 17:39
Giao diện Swing trong java, tại sao button lại chiếm hết màn hình?
Đây là code của mình: Mình mới chỉ code giao diện thôi nhé. ace xem giúp m cái button client (la button add sau cùng) lại chiếm hết màn hình.
public class MainWindow extends JFrame implements ActionListener {
JButton bt_client = new JButton();
JButton bt_server = new JButton();
JLabel jl = new JLabel();
public MainWindow() {
// bt_server.setBackground(Color.CYAN);
bt_server.setOpaque(true);
bt_server.setBounds(new Rectangle(50, 50, 100, 50));
bt_server.setText(" Server ");
this.getContentPane().add(bt_server);
bt_server.addActionListener(this);
jl.setOpaque(true);
jl.setBounds(new Rectangle(160, 50, 100, 50));
jl.setToolTipText(" <=========> ");
this.getContentPane().add(jl);
bt_client.setOpaque(true);
bt_client.setBounds(new Rectangle(270, 50, 100, 50));
bt_client.setText("Client");
this.getContentPane().add(bt_client);
bt_client.addActionListener(this);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
MainWindow m = new MainWindow();
m.setSize(400, 300);
// m.pack();
m.setLocationRelativeTo(null);
// m.setVisible(true);
m.show();
}
});
}
Bài liên quan
là sao nhỉ? nó có chiếm hết màn hình đâu?
Bạn phải chọn layout cho JFrame chứ. Layout mặc định của JFrame là BorderLayout, nó chia thành 5 vùng là Đông, Tây, Nam, Bắc và Center. Khi bạn thêm bất kỳ component nào thì nó sẽ hiểu là thêm vào vùng Center cho nên cái cuối cùng sẽ chiếm toàn bộ cửa sổ.
Mình hay dùng GridBagLayout vì cái này dễ điều chỉnh các thành phần bên trong JFrame nhất (theo mình là thế). Bạn có thể đọc hướng dẫn tại đây.
thank b nhiều m quen xái null lay out rồi nên hay setBound