我希望我的小部件位于 JFrame
的中心无论其大小如何(意味着框架尺寸较小或较大的组件应位于框架的中心)。
如何在调整框架大小时动态地将组件设置在中心?
最佳答案
So please tell me how to set the widgets at center dynamically on resizing frame in java
- Swing 有 JPanel不是小部件
i want my widgets to be at the center of the jframe regardless of its size(means either jframe size is small or larger widgets should be at center of the frame).
- 使用 BorderLayout 最简单,可以使用BoxLayout, GridBagLayout按比例调整大小
.
.
.
.
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class JFrameAndBorderLayout {
private JFrame frame = new JFrame("JFrame and BorderLayout");
private JPanel panelWest = new JPanel();
private JPanel panelEast = new JPanel();
private JPanel panelNorth = new JPanel();
private JPanel panelSouth = new JPanel();
private JPanel panelCenter = new JPanel() {
@Override
public Dimension getPreferredSize() {
return new Dimension(400, 300);
}
};
public JFrameAndBorderLayout() {
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(panelWest, BorderLayout.WEST);
frame.add(panelEast, BorderLayout.EAST);
frame.add(panelNorth, BorderLayout.NORTH);
frame.add(panelSouth, BorderLayout.SOUTH);
panelCenter.setBackground(Color.RED);
frame.add(panelCenter);
frame.pack();
frame.setLocation(150, 150);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrameAndBorderLayout fs = new JFrameAndBorderLayout();
}
});
}
}
关于java - 如何在调整框架大小时自动居中 JFrame 中使用的组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30693877/