[英]Java Swing JList dynamic resize in BorderLayout
currently I'm working on a Chat. 目前,我正在聊天。 At the moment the base is set and I try to make it more nicer.
目前已确定基准,我尝试使其更好。 So now I want to do a online user list but I dont know how to make the following: My Chat Currently(Ignore german language):
所以现在我想做一个在线用户列表,但是我不知道该如何做:当前我的聊天(忽略德语):
I have set the size of the online list by the following: 我通过以下方式设置了在线列表的大小:
JScrollPane userListSP = new JScrollPane();
userListSP.setPreferredSize(new Dimension(200,0));
But then the scrollPane always stays at x = 200 但是然后scrollPane始终保持在x = 200
I tried to fix it by adding minimumSIze:
我试图通过添加minimumSIze来解决此问题:
userListSP.setMinimumSize(new Dimension(50,0));
My Question: Has someone an Idea how to accomplish that it resizes but at the same time is still big enough? 我的问题:有人知道如何调整大小,但同时又足够大吗?
Try this as an example: 以此为例:
package com.test.package;
import java.awt.Color;
import javax.swing.DefaultListModel;
import javax.swing.GroupLayout;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
/**
*
* @author rmu
*/
public class ChatDemo extends JFrame {
private final JScrollPane scrollPaneMessages;
private final JList<String> listMessages = new JList<String>();
private final JPanel pnlUsers = new JPanel();
private final JTextField txtUserMsgInput = new JTextField();
public ChatDemo() {
scrollPaneMessages = new JScrollPane(listMessages);
pnlUsers.setBackground(Color.WHITE);
setVisible(true);
setTitle("Chat layout demo");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
putSampleData();
organizeLayout();
}
private void organizeLayout() {
GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(scrollPaneMessages, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE)
.addComponent(pnlUsers, 50, 50, 50))
.addComponent(txtUserMsgInput)
);
layout.setVerticalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(scrollPaneMessages)
.addComponent(pnlUsers))
.addComponent(txtUserMsgInput, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)
);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);
pack();
}
private void putSampleData() {
DefaultListModel<String> listModel = new DefaultListModel<>();
listModel.addElement("Very long string with many characters... Oh, so long!!");
listModel.addElement("This string is shorter");
listMessages.setModel(listModel);
}
public static void main(String[] args) {
new ChatDemo();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.