gpt4 book ai didi

java - JPanel/JFrame 自动调整大小。 java

转载 作者:行者123 更新时间:2023-11-30 03:31:07 28 4
gpt4 key购买 nike

我已经为我目前正在处理的聊天制作了一个 GUI。它几乎完成了,但唯一的事情是拖动窗口时自动调整大小。我不知道为什么会这样,这是我最后的机会。所以我真的需要你们的帮助!我有点不知道

代码在这里:

ClientGUI(String host, int port) {

super("Chat Client");
defaultPort = port;
defaultHost = host;



// The CenterPanel which is the chat room
MessageText = new JTextArea("Welcome to the Chat room\n");
JPanel centerPanel = new JPanel();
MessageText.setWrapStyleWord(true);
MessageText.setLineWrap(true);

centerPanel.setLayout(null);
JScrollPane scrollPane = new JScrollPane(MessageText);
scrollPane.setBounds(0, 0, 584, 486);
getContentPane().add(scrollPane);
MessageText.setEditable(false);
getContentPane().add(centerPanel, BorderLayout.CENTER);
WriteMessage = new JTextField("Write your username here!");
WriteMessage.setBounds(0, 492, 584, 35);
centerPanel.add(WriteMessage);
WriteMessage.setColumns(234);
WriteMessage.setBackground(Color.WHITE);

// the 3 buttons
Login = new JButton("Login");
Login.setBounds(594, 338, 125, 35);
centerPanel.add(Login);
Logout = new JButton("Logout");
Logout.setBounds(594, 469, 125, 35);
centerPanel.add(Logout);
Logout.addActionListener(this);
Logout.setEnabled(false); // you have to login before being able to logout
Online = new JButton("Online");
Online.setBounds(594, 403, 125, 35);
centerPanel.add(Online);
Online.addActionListener(this);
Online.setEnabled(false); // you have to login before being able to Who is in
JLabel PortNumberText = new JLabel("Port Number: ");
PortNumberText.setBounds(594, 83, 144, 20);
centerPanel.add(PortNumberText);
PortNumber = new JTextField("" + port);
PortNumber.setBounds(594, 114, 129, 20);
centerPanel.add(PortNumber);
PortNumber.setHorizontalAlignment(SwingConstants.RIGHT);

JLabel ServerText = new JLabel("Server Address: ");
ServerText.setBounds(594, 21, 240, 20);
centerPanel.add(ServerText);
// the two JTextField with default value for server address and port number
ServerAddress = new JTextField(host);
ServerAddress.setBounds(594, 52, 129, 20);
centerPanel.add(ServerAddress);
Login.addActionListener(this);
WriteMessage.requestFocus();

setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(760, 570);
setVisible(true);




}

http://i.gyazo.com/8d751c832f07980f884bb408d91d65d5.gif

一张图说明我的意思

最佳答案

不要使用空布局。不要使用 setBounds()。 Swing 被设计为与布局管理器一起使用。

只有在使用布局管理器时才能调整组件的大小。阅读 Swing 教程中关于 Layout Manager 的部分了解更多信息和示例。您始终可以使用多个面板,每个面板具有不同的布局管理器,以获得您想要的结果。

还遵循 Java 命名约定。变量名称不应以大写字符开头。你的名字一半是正确的,一半是错误的。保持一致!

关于java - JPanel/JFrame 自动调整大小。 java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29013346/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com