Круговой JPanel Swing - PullRequest
       11

Круговой JPanel Swing

0 голосов
/ 26 февраля 2010

Я пытаюсь отобразить круглый объект в моем графическом интерфейсе, круговой объект должен содержать несколько меток, поэтому я подумал, что круговой объект должен расширять JPanel. Кто-нибудь знает, как сделать круглую JPanel? Или хотя бы JPanel, который рисует овал и помещает несколько JLables в центр овала?

Спасибо

Ответы [ 2 ]

7 голосов
/ 26 февраля 2010

Чтобы нарисовать круг, подкласс JPanel и переопределить paintComponent:

public class CirclePanel extends JPanel {

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

Выглядит так:

альтернативный текст 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);

альтернативный текст http://img694.imageshack.us/img694/4013/so23432332.png

0 голосов
/ 26 февраля 2010

В книге Swing Hacks от O'Reilly есть взлом для прозрачных и анимированных окон # 41. Исходный код можно скачать с http://examples.oreilly.com/9780596009076/

...