我有一個JLabel,它在我的GUI中的特定位置包含可變文本。問題在於文本顯示在JLabel所在空間的底部。這不會向最終用戶傳達關於GUI其他內容的相關信息。相反,我需要將JLabel的文本打印在JLabel的垂直軸的中間。下面是我的代碼的簡化版本。任何人都可以告訴我如何改變它,使文本顯示在垂直軸的中間而不是底部?垂直軸中間的Java JLabel文本
Main.java:
import java.awt.*;
import javax.swing.*;
public class Main {
public static void main(String[] args){
JFrame frame = new JFrame("Main");
frame.getContentPane().setLayout(new FlowLayout());
frame.getContentPane().add(new VerticalLabel("Hello"));
Dimension prefSize = new Dimension(400,300);
frame.setPreferredSize(prefSize);
frame.setMinimumSize(prefSize);
frame.pack();
frame.setVisible(true);
}
}
VerticalLabel.java:
import javax.swing.*;
import java.awt.*;
import javax.swing.border.EtchedBorder;
public class VerticalLabel extends JLabel{
public VerticalLabel(String labelText){
Dimension myDim = new Dimension(15,250);
this.setPreferredSize(myDim);
this.setHorizontalAlignment(LEFT);
this.setVerticalAlignment(CENTER);
this.setText(labelText);
this.setVerticalTextPosition(CENTER);
this.setUI(new VerticalLabelUI(false));
this.setBorder(new EtchedBorder());
}
}
爲了更快得到更好的幫助,請移除[SSCCE](http://pscode.org/sscce.html)。 –