- レイアウトマネージャーを使用する方法: JPanelのデフォルトのレイアウトマネージャーであるFlowLayoutを使用して、JLabelを中央に配置することができます。以下のコード例を参考にしてください。
import javax.swing.*;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame("JLabel on the center of a JPanel");
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout(FlowLayout.CENTER));
JLabel label = new JLabel("Hello, World!");
panel.add(label);
frame.add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
- カスタムレイアウトマネージャーを使用する方法: JPanelのレイアウトマネージャーとして、カスタムのレイアウトマネージャーを作成することもできます。以下のコード例では、JLabelを中央に配置するための簡単なカスタムレイアウトマネージャーを示しています。
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.LayoutManager;
public class CenterLayout implements LayoutManager {
@Override
public void addLayoutComponent(String name, Component comp) {}
@Override
public void removeLayoutComponent(Component comp) {}
@Override
public Dimension preferredLayoutSize(Container parent) {
return null;
}
@Override
public Dimension minimumLayoutSize(Container parent) {
return null;
}
@Override
public void layoutContainer(Container parent) {
Component[] components = parent.getComponents();
if (components.length > 0) {
Component component = components[0];
Dimension parentSize = parent.getSize();
Dimension componentSize = component.getPreferredSize();
int x = (parentSize.width - componentSize.width) / 2;
int y = (parentSize.height - componentSize.height) / 2;
component.setBounds(x, y, componentSize.width, componentSize.height);
}
}
}
使用例:
import javax.swing.*;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame("JLabel on the center of a JPanel");
JPanel panel = new JPanel();
panel.setLayout(new CenterLayout());
JLabel label = new JLabel("Hello, World!");
panel.add(label);
frame.add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
これらの方法を使用すると、Java SwingのJPanelの中央にJLabelを配置することができます。