-1
A
回答
1
它不是在基礎JDK的支持。沒有這樣的事情,只能集中文本。文本和圖標都被繪製在一起,可以左對齊,居中或右對齊。
但是,您可以使用Component Border類。
這是一個自定義邊框,允許您將邊框添加到組件中。因此,您可以創建一個包含圖標的JLabel並使用該標籤作爲ComponentBorder
然後,您可以設置按鈕的文本,現在文本將位於按鈕和邊框的邊界內。
Basic代碼:
JButton button = new JButton("Centered Text");
JLabel label = new JLabel(new ImageIcon("..."));
ComponentBorder cb = new ComponentBorder(label);
cb.setEdge(ComponentBorder.Edge.LEFT);
cb.install(button);
add(button, BorderLayout.NORTH);
2
我做了一個演示測試你。
public class Test3 {
private static final int WIDTH = 300;
public Test3() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(WIDTH, 500);
frame.setResizable(false);
frame.setLayout(new BorderLayout());
JPanel panel = (JPanel) frame.getContentPane();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
//my icons
Icon iconOne = UIManager.getIcon("OptionPane.informationIcon");
Icon iconTwo = UIManager.getIcon("OptionPane.questionIcon");
Icon iconThree = UIManager.getIcon("OptionPane.errorIcon");
Icon iconFour = UIManager.getIcon("OptionPane.warningIcon");
JButton jButton1 = createButton(iconOne, "Button 1", true) ;
JButton jButton2 = createButton(iconTwo, "Button 2 sadasddfgdgdfgd", true) ;
JButton jButton3 = createButton(iconThree, "Button 3 sad asd a", true) ;
JButton jButton4 = createButton(iconFour, "Button 4 sadasd asdfrfere", true) ;
JButton jButton5 = createButton(iconTwo, "Button 5 sad", false) ;
JButton jButton6 = createButton(iconFour, "Button 6 sadrfere", false) ;
JButton jButton7 = createButton(iconThree, "Button 7 sadarfere", false) ;
JButton jButton8 = createButton(iconFour, "Button 8 sadasd asdfrfere", false) ;
panel.add(jButton1);
panel.add(jButton2);
panel.add(jButton3);
panel.add(jButton4);
panel.add(jButton5);
panel.add(jButton6);
panel.add(jButton7);
panel.add(jButton8);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) {
new Test3();
}
private JButton createButton(Icon p_jIcon, String p_strButtonText, boolean p_bIsIconLeftSide){
int nButtonHeight = 60;
int nGap = 40;
JButton jButton = new JButton();
jButton.setIcon(p_jIcon);
jButton.setIconTextGap(nGap);
if(p_bIsIconLeftSide){
jButton.setHorizontalAlignment(SwingConstants.LEFT);
jButton.setHorizontalTextPosition(SwingConstants.RIGHT);
jButton.setText(p_strButtonText);
}else{
//if you want to set icon position to right side of the button
jButton.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
jButton.setHorizontalAlignment(SwingConstants.RIGHT);
jButton.setHorizontalTextPosition(SwingConstants.LEFT);
jButton.setText("<html><div align=left width=200px>" + p_strButtonText + "</div></html>");
}
Dimension jSize = new Dimension(WIDTH, nButtonHeight);
jButton.setPreferredSize(jSize);
jButton.setMaximumSize(jSize);
jButton.setMinimumSize(jSize);
return jButton;
}
}
相關問題
- 1. 試圖在點擊時更改JButton上的圖標
- 2. 在地圖上更改Google標題的位置
- 3. 更改光標位置上的文本
- 4. 更改JSSOR圖片標籤位置
- 5. 圖標更改UITableViewCell的選擇位置
- 6. 更改表標題位置
- 7. 更改鼠標位置
- 8. 更改的JButton
- 9. 在InputBox上更改圖標
- 10. 如何更改Android地圖上標記的位置v2
- 11. 在搜索視圖中更改默認搜索圖標位置
- 12. 更改視圖位置
- 13. 在visual basic中更改光標位置
- 14. 更改尺寸JButton
- 15. 在位置更改上重寫URL
- 16. 在AccordionButton上更改箭頭的位置
- 17. 在iOS上更改Admob BannerView的位置
- 18. 在JPanel上更改位置JLabel重繪
- 19. 在PrintPageEventArgs.Graphis中更改繪圖位置
- 20. 更改的位置,$位置
- 21. 如何在鼠標右鍵上禁用JSlider的位置更改
- 22. 如何在MATLAB繪圖中更改「標記」位置?
- 23. 更改tableview的單元格的標籤和圖標位置
- 24. 更改Flex Spark ButtonBar控件的標籤和圖標位置
- 25. 如何使用JButton更改圖像
- 26. 更改地圖標記的位圖
- 27. 在底圖上更改Python的單位
- 28. 如何根據鼠標在圖像上的位置更改內容?
- 29. 當按下記憶遊戲時,JButton不會更改圖標
- 30. 更改滑塊在自定義位置上的位置