繁体   English   中英

使用Java AWT组件

[英]Using Java AWT components

我需要构建一个需要使用Canvas的用户窗体,因此我不想将摆动组件与AWT组件混合使用。

我已经看了很多教程,而且似乎缺少构造AWT框架的关键思想。

我正在使用GridLayout和GridBagConstraints设置我想要组件的位置。 但是,调整大小和定位似乎不起作用。 我希望能够有4行,最上面和最下面的行的高度都很小,并能遍及整个屏幕,然后在表格中间的2x2网格中有4个大正方形。

frame = new Frame("Test Player");   
frame.setSize(800, 800); 
frame.setLayout(new GridLayout(4, 2));

这应该给我所需的4x2网格。 然后,我想在整个顶部添加一个面板。

GridBagConstraints c = new GridBagConstraints();

// Add a panel to the top of the frame
Panel controlPanel = new Panel();
controlPanel.setBackground(Color.black);
controlPanel.setBounds(0, 0, 100, 20);
c.gridx  = 0;
c.gridy = 0;
c.gridwidth = 2;
c.fill = GridBagConstraints.BOTH;
c.anchor = GridBagConstraints.FIRST_LINE_START;
frame.add(controlPanel, c);  

为什么setBounds方法不更改面板的大小?

如何控制表单中组件的大小和位置? 这是执行此操作的正确方法,还是我使用的工具错误?

我需要建立一个需要使用Canvas的用户表单

为什么?

使用JPanel并使用Swing。 您可以轻松地将组件添加到面板。 它具有与Canvas相同的功能,但与AWT相比,Swing更高级并且具有更好的功能。 由于您只是在学习,所以花时间学习Swing。

Swing教程具有所有Swing基础知识,并且比在AWT上提供的任何内容都更全面。

为什么setBounds方法不更改面板的大小?

为什么要尝试使用setBounds()?

Swing(和AWT)都使用布局管理器。

布局管理器将根据布局管理器的规则重置所有组件的大小和位置。 然后,面板的大小将由添加到面板中的组件确定。

本教程包含有关How to Use a GridBagLayout的部分,其中包含一些入门工作示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM