在具有嵌套JPanel的布局中,我希望添加一个绘制的椭圆。
为此我使用以下内容:
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.GRAY);
g.fillOval(20, 20, 20, 20);
}
现在在我的一个面板中我希望添加这个椭圆形,但我似乎无法添加它。
JPanel myPanel = new JPanel();
myPanel.setLayout(new GridLayout(0, 2));
//myPanel.add(...); here i wish to add the drawn oval
任何意见都赞赏!
答案 0 :(得分:2)
执行此操作的方法是使用JComponent
的子类来完成所需的绘图,然后将其添加到布局中。
class OvalComponent extends JComponent {
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.GRAY);
g.fillOval(20, 20, 20, 20);
}
}
在GUI构造代码中,您可以拥有:
JPanel panel = new JPanel(new GridLayout(0, 2));
panel.add(new OvalComponent());
答案 1 :(得分:2)
您可以将mypanel.add(...)用于其他GUI元素。您要绘制的椭圆将是一个java2d对象,您必须绘制到面板上。为此,您必须使用上面发布的代码覆盖面板的paint()方法。
答案 2 :(得分:0)
JPanel panel = new JPanel() {
@Override
public void paint(Graphics g) {
g.drawRect(100, 100, 100, 100);
}
};
您可以覆盖JPanel类中的本机方法,该方法允许用户向其添加绘制组件。有了这个,您可以添加所有正常的图形输入,它将显示出来。该行代码应该在相对于面板左上角的坐标(100,100)处产生一个正方形。