Java 如何使用容器添加填充物?
我试图在上面做一些填充物,但如何使用容器Java 如何使用容器添加填充物?,java,swing,awt,Java,Swing,Awt,我试图在上面做一些填充物,但如何使用容器 JFrame frame = super.screen.getFullScreenWindow(); //Container contentPane = frame.getContentPane(); //JPanel contentPane = new JPanel(); // Make sure the content pane is transparent if (contentPane instanceo
JFrame frame = super.screen.getFullScreenWindow();
//Container contentPane = frame.getContentPane();
//JPanel contentPane = new JPanel();
// Make sure the content pane is transparent
if (contentPane instanceof JComponent) {
((JComponent)contentPane).setOpaque(false);
}
else {
// ??
}
contentPane.setBorder(new EmptyBorder(10, 10, 10, 10) );
//frame.getContentPane().add(contentPane, BorderLayout.CENTER);
输出
你不喜欢用秋千吗?组件具有添加边距的方法。Swing比过时的awt库要好得多。您可以重写,尽管您应该使用Swing组件。
及其JFrame/Frame
不实现ContentPane
,这是史前Borders
Componenet
- 使用
EmptyBorders
- 对于
和更高版本,不需要调用Java5
(仅适用于ContentPane
,您可以直接将setBackground:-)
添加到JComponents
,注意JFrame\add(myJComponent)
默认情况下已实现了
BorderLayout
JPanel containerPanel = new JPanel();
containerPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
containerPanel.setLayout(new BorderLayout());
//panel to test
JPanel testPanel = new JPanel();
testPanel.setBackground(Color.blue);
containerPanel.add(testPanel,BorderLayout.CENTER);
//assuming you are extending JFrame
getContentPane().setLayout(new BorderLayout());
getContentPane().add(containerPanel, BorderLayout.CENTER);
JPanel我试着像上面那样编辑。但是我在使用JPanel而不是容器时没有透明的容器。你说的“透明”是什么意思?请用你尝试过的内容编辑你的问题,问题是什么
JPanel containerPanel = new JPanel();
containerPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
containerPanel.setLayout(new BorderLayout());
//panel to test
JPanel testPanel = new JPanel();
testPanel.setBackground(Color.blue);
containerPanel.add(testPanel,BorderLayout.CENTER);
//assuming you are extending JFrame
getContentPane().setLayout(new BorderLayout());
getContentPane().add(containerPanel, BorderLayout.CENTER);