我正在努力实现like this
问题出在这里,我不知道如何将不同对象的“一列”居中。已经尝试使用GridLayout和BorderLayout,但无法使这些元素居中。
如果有人可以提供帮助,我将不胜感激。
答案 0 :(得分:1)
您可以试试import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
public class BoxLayoutExample {
public static void main(String[] arguments) {
SwingUtilities.invokeLater(() -> new BoxLayoutExample().createAndShowGui());
}
private void createAndShowGui() {
JFrame frame = new JFrame("Stack Overflow");
frame.setBounds(100, 100, 800, 600);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS));
panel.setBorder(new EmptyBorder(28, 28, 28, 28));
JLabel label = new JLabel("Some longer text here......");
panel.add(label);
label.setAlignmentX(Component.CENTER_ALIGNMENT);
panel.add(Box.createRigidArea(new Dimension(0, 42)));
String text = "image (can be done with \"new ImageIcon(\"image path\")\")";
JLabel image = new JLabel(text);
panel.add(image);
image.setAlignmentX(Component.CENTER_ALIGNMENT);
panel.add(Box.createRigidArea(new Dimension(0, 42)));
JButton button = new JButton("a button");
panel.add(button);
button.setAlignmentX(Component.CENTER_ALIGNMENT);
frame.getContentPane().add(panel);
frame.setVisible(true);
}
}
- 例如:A Visual Guide to Layout Managers。有关如何使用此布局管理器的更多详细信息,请访问:How to Use BoxLayout。
如果使用框布局向组件添加组件,则可以按如下方式设置对齐:
void Start ()
{
if (Input.touchCount >=1)
{
GetComponent<Rigidbody2D> ().AddForce (new Vector2 (1f, 0.5f) * force);
}
一个完整的例子:
jqgrid