ホームページ >Java >&#&チュートリアル >`drawImage()` メソッドを使用してピクセル エディターのグリッド構造を実装するにはどうすればよいですか?
ピクセル エディターのグリッド実装
ピクセル エディターの開発において、色の変更に対応するグリッド構造を実装する効果的な方法を決定します。クリックしてドラッグしたときは重要です。一般的なアプローチには、セルごとに個別の JButton を使用することが含まれますが、これは非効率的で面倒な場合があります。
画像スケーリングを備えたグリッド
代替ソリューションには、drawImage() の使用が含まれます。マウス座標をスケーリングすることで大きなピクセルを作成する方法。この手法は、以下に示すように、複数のセルの色を同時に変更する簡単かつ効率的な手段を提供します。
<code class="java">import java.awt.Dimension; import java.awt.EventQueue; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; import java.awt.image.BufferedImage; import javax.swing.Icon; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.UIManager; /** @see http://stackoverflow.com/questions/2900801 */ public class Grid extends JPanel implements MouseMotionListener { private final BufferedImage img; private int imgW, imgH, paneW, paneH; public Grid(String name) { super(true); Icon icon = UIManager.getIcon(name); imgW = icon.getIconWidth(); imgH = icon.getIconHeight(); this.setPreferredSize(new Dimension(imgW * 10, imgH * 10)); img = new BufferedImage(imgW, imgH, BufferedImage.TYPE_INT_ARGB); Graphics2D g2d = (Graphics2D) img.getGraphics(); icon.paintIcon(null, g2d, 0, 0); g2d.dispose(); this.addMouseMotionListener(this); } @Override protected void paintComponent(Graphics g) { paneW = this.getWidth(); paneH = this.getHeight(); g.drawImage(img, 0, 0, paneW, paneH, null); } @Override public void mouseMoved(MouseEvent e) { Point p = e.getPoint(); int x = p.x * imgW / paneW; int y = p.y * imgH / paneH; int c = img.getRGB(x, y); this.setToolTipText(x + "," + y + ": " + String.format("%08X", c)); } @Override public void mouseDragged(MouseEvent e) { } private static void create() { JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.add(new Grid("Tree.closedIcon")); f.pack(); f.setVisible(true); } public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { create(); } }); } }</code>
この手法を利用すると、調整可能な色のプロパティを備えたカスタマイズ可能なグリッド システムを効率的に実装でき、条件を満たすことができます。ピクセル エディター アプリケーションの要件。
以上が`drawImage()` メソッドを使用してピクセル エディターのグリッド構造を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。