這似乎是一個完全初級的問題,但我是揮桿的初學者。我有一個可調整大小的 JFrame,左邊有一個 JPanel,右邊有一個 JTabbedPane。我希望 JTabbedPane 具有恒定的寬度并增加高度以匹配 JFrame 高度。JPanel 應填充 JFrame 的剩余寬度和高度。我在這里做錯了什么?
public Example()
{
f = new JFrame();
f.setResizable(true);
f.setPreferredSize(new Dimension(1000, 800));
f.setLayout(new FlowLayout());
JPanel viewerPanel = new JPanel()
{
@Override
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.RED);
System.out.println("W:" getSize().width ", H:" getSize().height);
g2d.fillRect(0, 0, getSize().width, getSize().height);
}
};
f.getContentPane().add(viewerPanel);
JTabbedPane tabs = new JTabbedPane();
tabs.setSize(400, f.getHeight());
tabs.addTab("Tab1", new JLabel("Content1"));
tabs.addTab("Tab2", new JLabel("Content2"));
tabs.addTab("Tab3", new JLabel("Content3"));
tabs.addTab("Tab4", new JLabel("Content4"));
f.getContentPane().add(tabs);
f.pack();
f.setVisible(true);
}
uj5u.com熱心網友回復:
最好的方法是讓布局完成作業并設定首選或最小尺寸:
嘗試使用 BorderLayout 并將面板添加到中心(高度和寬度都增加)并將您的 tabbedPane 添加到 RIGHT(高度增加),同時為您的 tabbedPane 設定首選或最小尺寸
您的 tabbedPane 應該始終具有相同的內容,而面板將根據留給他的大小而增長
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/415681.html
標籤:
