JPanel在另一个里面
我在另一个JPanel中遇到问题。 我不知道为什么,但结果是一个简单的方块,但尺寸不正确。 这是为什么?
import java.awt.Color; import java.awt.Container; import javax.swing.JFrame; import javax.swing.JPanel; public class jj extends JFrame { private JPanel painel3; private JPanel painel5; private Container container; public jj() { container = getContentPane(); container.setLayout(null); painel5 = new JPanel(); painel5.setBackground(Color.red); painel5.setBounds(120, 110, 100, 120); painel3 = new JPanel(); painel3.setBackground(Color.white); painel3.add(painel5); painel3.setBounds(50, 50, 290, 220); container.add(painel3); // frame setSize(1000, 900); setLocation(200, 50); setResizable(false); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { new jj(); } }
您还需要将panel3的布局设置为null,否则使用默认的FlowLayout
:
panel3.setLayout(null);
一些额外的建议。 学习使用LayoutManagers。 他们可能会有轻微的学习曲线,但绝对值得。 很好的教程: http : //download.oracle.com/javase/tutorial/uiswing/layout/using.html
同样根据Java标准,类名应以大写字母开头。 这样做可以帮助其他人更好地阅读您的代码。
更好的方法是避免使用null布局和setBounds / setSize,而是让布局管理器帮助您布局GUI。 您可以在此处阅读它们: 在容器中布置组件
在添加painel5面板之前,将painel3的布局设置为null。
painel3.setLayout(NULL); painel3.add(painel5);
我建议使用LayoutManagers。
- 以编程方式解析插件之外的Maven依赖关系 – 获取RepositorySystemSession和RepositorySystem
- 从另一个异步方法调用的Spring异步方法
- java / clojure中的单字符控制台输入
- SSLv2Hello – javax.net.ssl.SSLException:收到致命警报:unexpected_message
- 试图让JTable + JScrollPane滚动
- 在Object 中为元素分配多少内存
- Springockito怎么样?
- Java对象序列化性能提示
- java.lang.NoClassDefFoundError:无法初始化类org.com.hibernate.HibernateUtil