Java Can';t使用内嵌HTML将JLabel置于BoxLayout的中心
我试图将一个包含内联HTML的JLabel水平居中,但似乎无法使其工作。我试过手动将其居中,但没有成功 以下是我的感受: 完整类别代码: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
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