Java 创建具有多个图像的JPanel
我有一个JPanel,我想画一些非常简单的图片(项目)。我想使用DrawRect或DrawOval之类的方法。。此面板将有一个滚动条。应该是这样的 我需要删除和添加特定索引上的项目(图像)。你能帮帮我吗?你已经看过了Java 创建具有多个图像的JPanel,java,image,swing,jpanel,drawrect,Java,Image,Swing,Jpanel,Drawrect,我有一个JPanel,我想画一些非常简单的图片(项目)。我想使用DrawRect或DrawOval之类的方法。。此面板将有一个滚动条。应该是这样的 我需要删除和添加特定索引上的项目(图像)。你能帮帮我吗?你已经看过了 正确(可能是GridLayout) 你必须和我一起看 从使用网格布局或垂直框布局的主JPanel开始。把它放在JScrollPane中。在主JPanel中,您需要有JPanel的实例,它扩展了常规的paintComponent()方法,以使用drawRect()、drawOval
- 正确(可能是
)GridLayout
- 你必须和我一起看
public JScrollPane buildScrollingContainerPanel()
{
JPanel containerPanel = new JPanel(new GridLayout(0, 1));
JScrollPane scrollPane = new JScrollPane(containerPanel);
containerPanel.add(new MyPanel(true, false));
containerPanel.add(new MyPanel(false, true));
return (scrollPane);
}
private class MyPanel extends JPanel
{
private boolean drawRect;
private boolean drawOval;
public MyPanel(boolean drawRect, boolean drawOval)
{
super();
this.drawRect = drawRect;
this.drawOval = drawOval;
}
public void setDrawRect(boolean b)
{
drawRect = b;
repaint();
}
public void setDrawOval(boolean b)
{
drawOval = b;
repaint();
}
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
if (drawOval)
{
g.setColor(Color.RED);
g.drawOval(16, 16, 16, 16);
}
if (drawRect)
{
g.setColor(Color.GREEN);
g.drawRect(32, 32, 16, 16);
}
}
}
要访问containerPanel的子级,请使用
containerPanel.getComponent(int)
然后转换到MyPanel。谢谢您的回答。我以前从未使用过像DrawOval这样的图标方法。我只加载了一个文件中的图像。我不想从文件中加载图像。你能举一些简单的例子来说明如何画一些东西并将其保存到一个图标中吗?