私はJPanelを持っています。このJPanelに非常に単純な画像(アイテム)を描画したいと思います。 DrawRectやDrawOvalのようなメソッドを使いたいです。このパネルにはスクロールバーがあります。それはthisのようになります。複数の画像を持つJPanelを作成する
特定のインデックスでアイテム(画像)を削除して追加する必要があります。私を助けてくれますか?
私はJPanelを持っています。このJPanelに非常に単純な画像(アイテム)を描画したいと思います。 DrawRectやDrawOvalのようなメソッドを使いたいです。このパネルにはスクロールバーがあります。それはthisのようになります。複数の画像を持つJPanelを作成する
特定のインデックスでアイテム(画像)を削除して追加する必要があります。私を助けてくれますか?
スタートとJListを見て見てまたは垂直BoxLayoutです。これをJScrollPaneの内部に配置します。メインJPanelの内部では、あなたがのdrawRect()、drawOval(と描画を行うには、通常のpaintComponent()メソッドを拡張するのJPanelのインスタンス)を持っているしたいと思う、などこれは、あなたが始める必要があります。
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にキャストします。
あなたが持っているいずれかのGridLayoutを使用しています(おそらくGridLayout
)
あなたがメインのJPanelとIcons
ありがとうございます。以前はDrawOvalのようなメソッドでアイコンを使ったことはありません。私はファイルからイメージをロードしただけです。私はファイルからイメージをロードしたくありません。どのように何かを描き、それをアイコンに保存する簡単な例を投稿できますか? – user1313386
ありがとうございました。それは本当に素晴らしい作品です。 – user1313386