基本上,我試圖製作一個按鈕,使文本對齊左邊(所以我使用的是setHorizontalAlignment(SwingConstants.LEFT))
和該按鈕的右邊框上的圖像遠離文字如何創建一個JButton,左邊的按鈕上有文字,右邊的按鈕上有它的圖標
我已經嘗試過setHorizontalTextAlignment(SwingConstants.LEFT)
,但這只是使文字相對於圖標的左側,這不正是我想要的,因爲我需要
此外,我不能做任何固定的間距,因爲它是一系列具有不同文本大小的按鈕。
基本上,我試圖製作一個按鈕,使文本對齊左邊(所以我使用的是setHorizontalAlignment(SwingConstants.LEFT))
和該按鈕的右邊框上的圖像遠離文字如何創建一個JButton,左邊的按鈕上有文字,右邊的按鈕上有它的圖標
我已經嘗試過setHorizontalTextAlignment(SwingConstants.LEFT)
,但這只是使文字相對於圖標的左側,這不正是我想要的,因爲我需要
此外,我不能做任何固定的間距,因爲它是一系列具有不同文本大小的按鈕。
我不能做任何固定的間距,因爲它是一系列不同尺寸的文本按鈕。
可以動態改變的間距與類似的代碼:
JButton button = new JButton("Text on left:")
{
@Override
public void doLayout()
{
super.doLayout();
int preferredWidth = getPreferredSize().width;
int actualWidth = getSize().width;
if (actualWidth != preferredWidth)
{
int gap = getIconTextGap() + actualWidth - preferredWidth;
gap = Math.max(gap, UIManager.getInt("Button.iconTextGap"));
setIconTextGap(gap);
}
}
};
button.setIcon(new ImageIcon("copy16.gif"));
button.setHorizontalTextPosition(SwingConstants.LEADING);
很好的使用'getIconTextGap()'。對於那些想知道的,它會返回文本和該按鈕中顯示的圖標之間的空間量 – user1803551
您可以將佈局管理器添加到您的按鈕。
JButton btn = new JButton();
btn.add(new JLabel(text));
btn.add(new JLabel(img));
btn.setLayout(/*best layout choice here*/);
btn.setPreferredSize(new Dimension(x,y));
btn.setMaximumSize(new Dimension(maxX, minY));
btn.setMinimumSize(new Dimension(minX, minY)); //this one is most important when it comes to layoutmanagers
對不起,我不能提供很多幫助,當選擇一個好的佈局 - 但這最終會讓你得到你想要的。也許別人可以評論哪一個使用。
我打算提出這個建議,但是「焦點指示器」並沒有被繪製在你添加到按鈕上的組件上。 – camickr
分享您的代碼。 – Perdomoff