我想要一組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. 帶鏈接的CSS按鈕
- 2. 帶鏈接按鈕的CSS標題
- 3. 帶按鈕的單選按鈕鏈接? [Android Studio]
- 4. 信息按鈕(i)
- 5. iOS信息按鈕
- 6. 鏈接按鈕鏈接
- 7. 的鏈接按鈕
- 8. 帶有視頻時間的鏈接按鈕
- 9. Android按鈕詳細信息
- 10. rightBarButtonItem信息按鈕,右邊
- 11. 從按鈕獲取信息
- 12. 添加信息到按鈕
- 13. UIScrolllView和信息按鈕
- 14. 鏈接/按鈕3.2.4+
- 15. GWT鏈接按鈕
- 16. WPF鏈接按鈕
- 17. POSTing鏈接信息PHP
- 18. 盤旋鏈接信息
- 19. 點擊gridview中的鏈接按鈕不會顯示詳細信息detailview
- 20. wpf中的鏈接按鈕
- 21. 鏈接外面的按鈕
- 22. 鏈接按鈕的GridView
- 23. asp.net中的鏈接按鈕?
- 24. 鏈接按鈕的實現
- 25. 如何在鏈接中有一個不是鏈接的按鈕
- 26. 想要HTML按鈕發送帶有輸入詳細信息的電子郵件
- 27. LoginView註銷按鈕沒有鏈接
- 28. asp.net鏈接按鈕沒有射擊
- 29. 按鈕沒有正確鏈接
- 30. Gridview鏈接按鈕沒有觸發