Java Can';t使用内嵌HTML将JLabel置于BoxLayout的中心

Java Can';t使用内嵌HTML将JLabel置于BoxLayout的中心,java,layout,jlabel,Java,Layout,Jlabel,我试图将一个包含内联HTML的JLabel水平居中,但似乎无法使其工作。我试过手动将其居中,但没有成功 以下是我的感受: 完整类别代码: import java.awt.Button; import java.awt.Cursor; import java.awt.Desktop; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.IOException; import ja

我试图将一个包含内联HTML的JLabel水平居中,但似乎无法使其工作。我试过手动将其居中,但没有成功

以下是我的感受:

完整类别代码:

import java.awt.Button;
import java.awt.Cursor;
import java.awt.Desktop;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

@SuppressWarnings("serial")
public class Client extends JFrame{
    private final String url = "http://example.com/";
    public Client() {
        JPanel mainPanel = new JPanel();
        mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(200, 225);
        setResizable(false);
        setLocationRelativeTo(null);

        addComponents(mainPanel);
        add(mainPanel);

        setTitle(null);
        setVisible(true);
    }
    public void addComponents(JPanel pane) {
        Button btn1 = new Button("1");
        btn1.setSize(200, 50);
        btn1.setFocusable(false);
        pane.add(btn1);

        Button btn2 = new Button("2");
        btn2.setSize(200, 50);
        btn2.setFocusable(false);
        pane.add(btn2);

        Button btn3 = new Button("3");
        btn3.setSize(200, 50);
        btn3.setFocusable(false);
        pane.add(btn3);

        JLabel lblWebsite = new JLabel("<html><a href=\"" + url + "\">Visit lblAbout1</a></html>", BoxLayout.X_AXIS);
        lblWebsite.setCursor(new Cursor(Cursor.HAND_CURSOR));
        lblWebsite.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                try {
                    Desktop.getDesktop().browse(new URI(url));
                } catch (IOException e1) {
                    e1.printStackTrace();
                } catch (URISyntaxException e1) {
                    e1.printStackTrace();
                }
            }
        });
        pane.add(lblWebsite);   
    }
}
import java.awt.Button;
导入java.awt.Cursor;
导入java.awt.Desktop;
导入java.awt.event.MouseAdapter;
导入java.awt.event.MouseEvent;
导入java.io.IOException;
导入java.net.URI;
导入java.net.URISyntaxException;
导入javax.swing.BoxLayout;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JPanel;
@抑制警告(“串行”)
公共类客户端扩展JFrame{
私有最终字符串url=”http://example.com/";
公共客户机(){
JPanel mainPanel=新的JPanel();
mainPanel.setLayout(新的BoxLayout(mainPanel,BoxLayout.Y_轴));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
设置大小(200225);
可设置大小(假);
setLocationRelativeTo(空);
添加组件(主面板);
添加(主面板);
setTitle(空);
setVisible(真);
}
公共void addComponents(JPanel窗格){
按钮btn1=新按钮(“1”);
btn1.设置尺寸(200,50);
btn1.setFocusable(假);
窗格。添加(btn1);
按钮btn2=新按钮(“2”);
btn2.设置尺寸(200,50);
btn2.setFocusable(假);
窗格。添加(btn2);
按钮btn3=新按钮(“3”);
btn3.设置尺寸(200,50);
btn3.设置聚焦(假);
窗格。添加(btn3);
JLabel lblWebsite=新的JLabel(“,BoxLayout.X_轴);
lblWebsite.setCursor(新光标(Cursor.HAND_光标));
lblWebsite.addMouseListener(新的MouseAdapter(){
@凌驾
公共无效mouseClicked(MouseEvent e){
试一试{
getDesktop().browse(新URI(url));
}捕获(IOE1异常){
e1.printStackTrace();
}捕获(URISyntaxException e1){
e1.printStackTrace();
}
}
});
添加窗格(lblWebsite);
}
}
尝试使用方法

将锚固定在与中心对齐的
div

JLabel lblWebsite = new JLabel("<html><div align='center'><a href=\"" + url + "\">Visit lblAbout1</a></div></html>", BoxLayout.X_AXIS);
lblWebsite.setAlignmentX(Component.CENTER_ALIGNMENT);
JLabel lblWebsite=新的JLabel(“,BoxLayout.X_轴);
lblWebsite.setAlignmentX(组件中心对齐);
快照:


它将工作
mainPanel.setLayout(新的GridLayout(4,1))
@Braj它将在
gridlaout
BoxLayout