我想要一组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. 带按钮的网格详细信息页面