我想有一组JradioButton将和旁边的每个一个,当点击将打开一个新的窗口用约旁边的单选按钮的文本信息一点点的“i”的形象。什么是用来对准小“我”下一个标签的单选按钮最好的组件?

有帮助吗?

解决方案

有一些possibilties风格做到这一点。

最简单的一个显然是把一个JButton与“我”的形象旁边的单选按钮。使用正确的布局管理器(当然GridBagLayout)将让您轻松对准两者。

另外一个可以是设置一个客户端属性中的单选按钮,然后让你的单选按钮呈现器(在look'n'feel)使用该客户端属性到旁边的按钮显示“i”图标。不幸的是,它是有点困难顶部实现,因为它需要你在需要时正确管理的单选按钮边界来incldue图像(在LNF也实现了,但不是那么容易找到)。

其他提示

通过您的图像作为javax.swing.ImageIconJRadioButton的构造函数。然后收听上的按钮的鼠标点击和检查鼠标指针的坐标是图像的边界内。

我找到类似的JLabel用于组分的对这个问题的“I”部分的类型是最有用的。像所有组件的JLabel可以有鼠标侦听加入其中,并从那里您有必需的访问,当用户点击一个触发的东西。

在下面的代码我使用了一个简单的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);
            }
        });
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top