java - 圆形 JPanel Swing

标签 java swing jpanel geometry

我试图在我的 gui 中显示一个圆形对象,该圆形对象应该包含一些标签,因此我认为圆形对象应该扩展 JPanel。有谁知道如何制作一个圆形的JPanel?或者至少有一个 JPanel 绘制一个椭圆形并在椭圆形中心放置一些 JLable?

谢谢

最佳答案

要绘制圆形,请子类化 JPanel 并覆盖 paintComponent:

public class CirclePanel extends JPanel {

    @Override
    protected void paintComponent(Graphics g) {
        g.drawOval(0, 0, g.getClipBounds().width, g.getClipBounds().height);
    }
}

看起来像这样:

alt text http://img246.imageshack.us/img246/3708/so2343233.png

要放置标签,您可以使用 GridBagLayout ,希望这就是您想要的:

CirclePanel panel = new CirclePanel();

panel.setLayout(new GridBagLayout());

GridBagConstraints gc;

gc = new GridBagConstraints();
gc.gridy = 0;
panel.add(new JLabel("Label 1"), gc);

gc = new GridBagConstraints();
gc.gridy = 1;
panel.add(new JLabel("Label 2"), gc);

alt text http://img694.imageshack.us/img694/4013/so23432332.png

关于java - 圆形 JPanel Swing ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2343233/

相关文章:

java - 内部带有 JTextArea 组件的自定义 JButton

java - Java 中的 JPanel 问题

java - 如何加密桌面应用程序和基于 REST 的 Web 服务之间的通信?

java - JLabel 中的自定义字体被截断

java - JSF 2 : page not rerendered on AJAX request (@all and explicit IDs)

java - 将数组的内容添加到 JFrame、添加 JPanel、添加 JScroll

java - 如何让JFrame背景图片透明?

java - 如何从另一个类获取有条件分配的值

java - 初学者问题: basic insertion idiom for JPA?

java - 如何将 Date 类型参数作为 String 放入 GET 请求中?格式 "yyyy-MM-dd"