Java 为什么';这个GridBagLayout代码不起作用吗?
我有下面的代码 类似的代码也可以工作。还有一位朋友说它应该会起作用。但事实并非如此 有人有线索吗 谢谢 问题描述: 所有的东西都很小,而不是绘制所需的布局。(Java 为什么';这个GridBagLayout代码不起作用吗?,java,swing,layout,gridbaglayout,Java,Swing,Layout,Gridbaglayout,我有下面的代码 类似的代码也可以工作。还有一位朋友说它应该会起作用。但事实并非如此 有人有线索吗 谢谢 问题描述: 所有的东西都很小,而不是绘制所需的布局。( 您没有为滚动窗格设置任何视图,因此滚动窗格无法确定其首选大小 您没有在按钮上设置文本,因此它只根据边框的要求计算按钮的大小 不要弄乱setXxxSize,您的ChatGUI应该不知道它可能需要占用的可视大小 你调试过你的程序吗?因为没有编译器错误,这很可能是一个逻辑错误,没有。所以你没有调试你的程序。你也不需要编译器错误来调试。非常有用,
setXxxSize
,您的ChatGUI
应该不知道它可能需要占用的可视大小你调试过你的程序吗?因为没有编译器错误,这很可能是一个逻辑错误,没有。所以你没有调试你的程序。你也不需要编译器错误来调试。非常有用,谢谢。调试器怎么会告诉我我需要知道才能看到misakte?例如,它可以帮助你在逻辑上一步一步地进行调试啊,你得一步一步地修改你的程序,直到你能更清楚地看到发生的错误为止。@Mad教授:是的,这就是轨迹。我明天要检查,现在要迟到了。但这很有道理,所以我只能说:啊!我可能会想到这个。。。谢谢!To 3):大小将由另一个类设置,该类将chatGUI作为主JFrame内的窗格调用。无论如何:谢谢!
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Image;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class ChatGUI extends JPanel {
private static final long serialVersionUID = -3069354983197916315L;
private Image imgBackground;
private GridBagLayout gblChat;
private GridBagConstraints constraintsChat;
private JPanel jPanelChat;
private JList clientList;
private JColorChooser font_chooser;
private JButton privateMessage_button;
private JButton sendMessage_button;
private JScrollPane OutputOfChatMessages;
private JScrollPane ShowConnectedClients;
private JScrollPane InputOfChatMessage;
public static void main(String[] args) {
JFrame jf = new JFrame();
ChatGUI cg1 = new ChatGUI(500, 500);
jf.add(cg1);
jf.setExtendedState(Frame.MAXIMIZED_BOTH);
jf.setVisible(true);
}
/**
* Layout
*/
public ChatGUI(int width, int height) {
// used for scaling
this.setMinimumSize(new Dimension(width / 2,
height / 4));
this.setPreferredSize(new Dimension(width / 2,
height / 4));
jPanelChat = new JPanel();
gblChat = new GridBagLayout();
constraintsChat = new GridBagConstraints();
this.setLayout(gblChat);
this.setBackground(Color.LIGHT_GRAY);
constraintsChat.fill = GridBagConstraints.BOTH;
/**
* Panel 1 = OutputOfChatMessages
*/
OutputOfChatMessages = new JScrollPane();
constraintsChat.gridx = 0;
constraintsChat.gridy = 0;
constraintsChat.gridwidth = 1;
constraintsChat.gridheight = 1;
gblChat.setConstraints(OutputOfChatMessages, constraintsChat);
this.add(OutputOfChatMessages);
/**
* Panel 2 = ShowConnectedClients
*/
ShowConnectedClients = new JScrollPane();
constraintsChat.gridx = 1;
constraintsChat.gridy = 0;
constraintsChat.gridwidth = 4;
constraintsChat.gridheight = 4;
gblChat.setConstraints(ShowConnectedClients, constraintsChat);
this.add(ShowConnectedClients);
/**
* Panel 3 = InputOfChatMessage
*/
InputOfChatMessage = new JScrollPane();
constraintsChat.gridx = 0;
constraintsChat.gridy = 5;
constraintsChat.gridwidth = 2;
constraintsChat.gridheight = 2;
gblChat.setConstraints(InputOfChatMessage, constraintsChat);
this.add(ShowConnectedClients);
/**
* Panel 4 = privateMessage_button
*/
privateMessage_button = new JButton();
constraintsChat.gridx = 1;
constraintsChat.gridy = 6;
constraintsChat.gridwidth = 1;
constraintsChat.gridheight = 1;
gblChat.setConstraints(privateMessage_button, constraintsChat);
this.add(privateMessage_button);
/**
* Panel 5 = sendMessage_button
*/
sendMessage_button = new JButton();
constraintsChat.gridx = 1;
constraintsChat.gridy = 7;
constraintsChat.gridwidth = 1;
constraintsChat.gridheight = 1;
gblChat.setConstraints(sendMessage_button, constraintsChat);
this.add(sendMessage_button);
this.validate();
//this.revalidate();
}
}