[英]Make JPanel size of JFrame?
我一直盯着我的代碼幾個小時,我幾乎把所有的東西都切成了最簡單的部分,我不知道如何讓JPanel擴展到框架的大小。 理想情況下(最后)我想要一個帶有南北內容板的集裝箱面板。 一旦南面板被放置,北面板需要占用剩余的空間。
但是現在,我有一個小紅色斑點,只有它的內容大。 有人能給我一些洞察我從根本上做錯的事嗎?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class TestCode extends JFrame {
private DescriptionPanel window = new DescriptionPanel();
public static void main(String[] args){
TestCode frame = new TestCode();
frame.pack();
frame.setTitle("Grape Project");
frame.setLocationRelativeTo(null);
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public TestCode(){
add(window);
}
}
和DescriptionPanel類:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DescriptionPanel extends JPanel{
private JPanel container = new JPanel();
public DescriptionPanel(ImageIcon pic, JLabel text){
container.setBackground(Color.red);
add(container);
}
}
這是典型的BorderLayout
場景。
默認情況下, JPanel
已經設置了FlowLayout
,因此您需要調用setLayout
,或者您可以使用正確的布局管理器初始化DescriptionPanel
:
super(new BorderLayout());
// setLayout(new BorderLayout());
add(top, BorderLayout.CENTER); // take all available upper space left
add(bottom, BorderLayout.SOUTH); // take the vertical space specified
將LayoutManager
設置為BorderLayout
:
setLayout(new BorderLayout());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.