我想要一組JRadioButton並在每個旁邊有一個'i'圖像,點擊後會打開一個包含單選按鈕旁邊文本信息的新窗口。什麼是最好的組件來對齊單選按鈕旁邊的小'i'標籤?帶有信息鏈接的JRadio按鈕
0
A
回答
1
有一些可能性與樣式做到這一點。
最簡單的一個顯然是把JButton
加上你的單選按鈕旁邊的「我」圖像。使用正確的佈局管理器(當然是GridBagLayout
)可以讓您輕鬆對齊。
另一個可能是在您的單選按鈕中設置客戶端屬性,然後讓您的單選按鈕渲染器(在look'n'feel中)使用此客戶端屬性來顯示按鈕旁邊的「我」圖標。不幸的是,這是一個有點難度最高的工具,因爲它要求您正確管理單選按鈕邊界以在需要時包含圖像(這也是在LnF中實現的,但並不容易找到)。
1
將您的圖像作爲javax.swing.ImageIcon
傳遞給JRadioButton
的構造函數。然後監聽鼠標點擊按鈕,並檢查鼠標指針的座標是否在圖像邊界內。
0
我發現類似JLabel的東西對於問題'i'部分的組件類型最有用。類似於所有組件的JLabels可以將鼠標監聽器添加到它們中,並且從那裏您可以獲得所需的訪問權限,以便在用戶單擊某個組件時觸發某些內容。
在下面的代碼中,我使用了一個簡單的FlowLayout,因爲如果您不喜歡使用GridBayLayout,您會覺得這是一種合乎邏輯的配合以提供水平對齊。最終它將取決於你如何設置你的佈局,但像FlowLayout這樣的東西有助於這些情況。
看爲一個例子,以下代碼:
public class Main {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
public void run() {
final JFrame f = new JFrame();
f.setLayout(new BorderLayout());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p = new JPanel(new FlowLayout());
JLabel l = new JLabel(new ImageIcon(Main.class.getResource("info.png")));
l.addMouseListener(new MouseAdapter(){
@Override
public void mouseReleased(MouseEvent e) {
JOptionPane.showMessageDialog(f, "Clicked");
}
});
p.add(new JRadioButton());
p.add(l);
f.add(p, BorderLayout.CENTER);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
});
}
}
相關問題
- 1. JRadio按鈕選擇問題
- 2. 帶鏈接的CSS按鈕
- 3. 信息按鈕沒有鏈接到其他視圖控制器
- 4. 帶鏈接按鈕的CSS標題
- 5. 收到信息的固定鏈接以使自定義按鈕
- 6. 在Datalist鏈接按鈕中添加日期信息
- 7. 通過單擊鏈接按鈕顯示更多信息更多
- 8. 信息對話框不顯示爲ajax按鈕/鏈接
- 9. 帶按鈕的單選按鈕鏈接? [Android Studio]
- 10. 信息按鈕(i)
- 11. iOS信息按鈕
- 12. 使用一個帶有鏈接的div的導航按鈕
- 13. 鏈接按鈕鏈接
- 14. 的鏈接按鈕
- 15. Django - 鏈接到主頁中帶有按鈕的網頁部分
- 16. JavaFX - 帶有超鏈接到其他頁面的按鈕
- 17. 帶有視頻時間的鏈接按鈕
- 18. 在網格視圖中添加帶有鏈接的按鈕android
- 19. 添加信息到按鈕
- 20. rightBarButtonItem信息按鈕,右邊
- 21. Android按鈕詳細信息
- 22. 從按鈕獲取信息
- 23. UIScrolllView和信息按鈕
- 24. Django:按鈕鏈接
- 25. GWT鏈接按鈕
- 26. 與鏈接按鈕
- 27. WPF鏈接按鈕
- 28. 鏈接/按鈕3.2.4+
- 29. 沒有歷史的鏈接按鈕
- 30. 帶按鈕的網格詳細信息頁面