gpt4 book ai didi

java - 在java中的分割 Pane 上添加jpanels

转载 作者:行者123 更新时间:2023-11-30 04:33:32 26 4
gpt4 key购买 nike

我正在尝试在单个 JFrame 表单上添加三个面板。如果我只添加三个面板,它们就会被显示,但如果我在分割 Pane 上添加面板,则不会显示任何内容提示以下代码中的错误

 import javax.swing.*;
import java.awt.*;
class paneltest extends JFrame{
paneltest()
{
Container cp=this.getContentPane();
cp.setLayout(null);
panel1 p1= new panel1();
panel2 p2= new panel2();
panel3 p3= new panel3();
cp.add(p1);
cp.add(p2);
cp.add(p3);
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();

p1.setBounds(0,0,screenSize.width/3,screenSize.height);
p2.setBounds(screenSize.width/3,0,screenSize.width/3,screenSize.height);
p3.setBounds(2*(screenSize.width/3),0,screenSize.width/3,screenSize.height);

try{

JSplitPane splitPaneLeft = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
JSplitPane splitPaneRight = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
splitPaneLeft.setLeftComponent( p1 );
splitPaneLeft.setRightComponent( p2 );
splitPaneRight.setLeftComponent( splitPaneLeft );
splitPaneRight.setRightComponent( p3 );

JPanel panelSplit = new JPanel();
panelSplit.add(splitPaneRight);
cp.add(panelSplit);
panelSplit.setVisible(true);
}
catch(Exception ex)
{

JOptionPane.showMessageDialog(null,"exception occured"+ex);

}
}
public static void main(String arsg[])
{

paneltest frm= new paneltest();
frm.show ();

}

}
class panel1 extends JPanel
{
panel1()
{
setLayout(new FlowLayout());
JLabel l1= new JLabel("panel1");
add(l1);


}

}

class panel2 extends JPanel
{
panel2()
{
setLayout(new FlowLayout());
JLabel l1= new JLabel("panel2");
add(l1);

}

}
class panel3 extends JPanel
{
panel3()
{
setLayout(new FlowLayout());
JLabel l1= new JLabel("panel3");
add(l1);


}

}

最佳答案

删除行 cp.setLayout(null)。这将解决最初的问题。

之后:

  • 缩进代码
  • 尊重 Java 命名约定
  • 如果您立即将面板添加到分割 Pane ,则不要将其添加到内容 Pane 。组件可以添加到单个父组件中。将它们添加到两者中没有意义
  • 不要使用setBounds()。这就是布局管理器的作用
  • 不要扩展 JPanel 和 JFrame。使用它们
  • 尊重Swing's threading policy
  • 不要捕获(异常)

关于java - 在java中的分割 Pane 上添加jpanels,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14029158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com