像Microsoft一样使文本居中

时间:2013-10-22 01:03:26

标签: java swing jframe jlabel centering

我想将文本对齐方式编辑到中心。我已经知道你可以做到: intro.setHorizo​​ntalAlignment(JLabel.CENTER); 使它居中。但我想这样做,以便当你做那个图标时,就像在微软的话。到目前为止,这是我的计划:

import javax.swing.*;

import javax.swing.JLabel;

public class FrameStuff

{

 public static void main(String[] args)

 {

 // Creating and setting up a regular frame
 JFrame frame = new JFrame();

 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 // Setting up frame characteristics
 frame.setSize(800, 600);
 frame.setTitle("FrameStuff");

 // Making it visible

frame.setVisible(true);

 //Making and assigning a new string

String textintro = new String("<html>This is my program <br/>I am having loads of fun <br/>Thanks for helping me!</html>");

// Made a new label (just happened to call it intro

 JLabel intro = new JLabel(textintro );

 // Set some sort of alignment within the frame

 intro.setHorizontalAlignment(JLabel.CENTER);

 //Add the dang label to the frame. 

frame.add(intro); 

}

}

我第一次使用这个和新手编程。

2 个答案:

答案 0 :(得分:5)

使用AlignmentAction中的StyledEditorKit,例如

JButton button = new JButton(new
    StyledEditorKit.AlignmentAction("Center", StyleConstants.ALIGN_CENTER));

您可以在相关的example中试用。另请参阅How to use ActionText Component Features

答案 1 :(得分:2)

你可以尝试

String message; 

JLabel label = new JLabel(message, SwingConstants.CENTER);

我没有使用过垃圾邮件提到的AlignmentAction,但是如果你最终遇到问题,这应该也可以。