我需要一个包含一个面板的小程序。面板必须为550x400像素,JTextField必须位于面板动态尺寸之下。我希望它是这样的:
[topPanel]
[textPanel]
但是,我正在尝试此操作,似乎面板正在填充所有空间。代码:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JApplet;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Client extends JApplet
{
@Override
public void init()
{
try {
java.awt.EventQueue.invokeAndWait(new Runnable()
{
public void run()
{
initComponents();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void initComponents()
{
JPanel topPanel = new javax.swing.JPanel();
topPanel.setBackground(Color.red);
topPanel.setSize(550, 400);
topPanel.setPreferredSize(new Dimension(550, 400));
topPanel.setMinimumSize(new Dimension(550, 400));
topPanel.setMaximumSize(new Dimension(550, 400));
JTextField myTextBox = new JTextField(255);
getContentPane().add(topPanel, java.awt.BorderLayout.NORTH);
getContentPane().add(myTextBox, java.awt.BorderLayout.SOUTH);
}
// TODO overwrite start(), stop() and destroy() methods
}
谢谢!
最佳答案
当我测试以上代码时,组件似乎处于正确的位置。我唯一注意到的是,初始视口尺寸小于550x400。由于JPanel的大小始终为550x400,因此在显示JTextField时会引起一些失真。