我的代码有点问题。我创建了一个5,1,0,0的gridlayout。我有一个文本字段,3个按钮和一个标签,其中用户输入的结果的结果分析显示在底部。现在结果可能会出现多行,具体取决于句子中的单词大小,我的问题是当显示多行结果时,我的程序布局发生变化,我不知道如何保持相同但只是标签或如果需要,Applet窗口本身会调整大小?
public class assignment_tauqeer_abbasi extends JApplet implements ActionListener {
JTextArea textInput; // User Input.
JLabel wordCountLabel; // To display number of words.
public void init() {
//这里的代码是Applet的自定义,包括背景颜色,文本颜色,背景文本,标签和按钮
setBackground(Color.black);
getContentPane().setBackground(Color.black);
textInput = new JTextArea();
textInput.setBackground(Color.white);
JPanel south = new JPanel();
south.setBackground(Color.darkGray);
south.setLayout( new GridLayout(5,1,0,0) );
/* Creating Analyze and Reset buttons */
JButton countButton = new JButton("Analyze");
countButton.addActionListener(this);
south.add(countButton);
JButton resetButton = new JButton("Reset");
resetButton.addActionListener(this);
south.add(resetButton);
JButton fileButton = new JButton("Analyze Text File");
fileButton.addActionListener(this);
south.add(fileButton);
/* Labels telling the user what to do or what the program is outputting */
wordCountLabel = new JLabel(" No. of words:");
wordCountLabel.setBackground(Color.black);
wordCountLabel.setForeground(Color.red);
wordCountLabel.setOpaque(true);
south.add(wordCountLabel);
/* Border for Applet. */
getContentPane().setLayout( new BorderLayout(2,2) );
/* Scroll bar for the text area where the user will input the text they wish to analyse. */
JScrollPane scroller = new JScrollPane( textInput );
getContentPane().add(scroller, BorderLayout.CENTER);
getContentPane().add(south, BorderLayout.SOUTH);
} // end init();
public Insets getInsets() {
// Border size around edges.
return new Insets(2,2,2,2);
}
// Applet自定义结束
这是我的布局代码。任何帮助都会得到赞赏!
答案 0 :(得分:1)
GridLayout
将根据最大单元格的内容调整每个单元格的大小。请考虑使用different layout或combination of layouts代替。
答案 1 :(得分:0)
您使用过的gridLayout可能会使您使用的五个内容复杂化。尝试使用流布局,这将自动为正在输入的新内容腾出空间。