ホームページ >Java >&#&チュートリアル >正確な色操作のために Java でピクセル化されたグリッドを作成する方法
Java でピクセル グリッドを作成する
意欲的なピクセル編集者にとって、正確な色操作を可能にするグリッド システムを設計するのは困難な場合があります。ただし、Java には、プロセスを合理化できるいくつかの便利なコンポーネントが用意されています。
グリッド セルとしての JButton
最初は、JButton をグリッド セルとして使用するのは非効率的に見えるかもしれません。個々のセルを変更することは可能ですが、多数のセルを操作する場合は面倒になります。
代替グリッド実装
より効果的な解決策は、drawImage() メソッドを利用することです。マウス座標をスケールします。この手法は、グリッドのような動作を維持しながら、より大きな「ピクセル」を作成します。
サンプル コード
次のコードは、このアプローチを示しています。
<code class="java">import javax.swing.*; import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; import java.awt.image.BufferedImage; public class Grid extends JPanel implements MouseMotionListener { private BufferedImage img; private int imgW, imgH, paneW, paneH; public Grid(String name) { super(true); // Load an image icon Icon icon = UIManager.getIcon(name); imgW = icon.getIconWidth(); imgH = icon.getIconHeight(); // Calculate panel dimensions this.setPreferredSize(new Dimension(imgW * 10, imgH * 10)); // Create an image buffer img = new BufferedImage(imgW, imgH, BufferedImage.TYPE_INT_ARGB); // Draw the icon to the buffer Graphics2D g2d = (Graphics2D) img.getGraphics(); icon.paintIcon(null, g2d, 0, 0); g2d.dispose(); // Register mouse motion listener this.addMouseMotionListener(this); } @Override protected void paintComponent(Graphics g) { paneW = this.getWidth(); paneH = this.getHeight(); // Draw the buffered image g.drawImage(img, 0, 0, paneW, paneH, null); } @Override public void mouseMoved(MouseEvent e) { // Scale mouse coordinates based on panel dimensions Point p = e.getPoint(); int x = p.x * imgW / paneW; int y = p.y * imgH / paneH; // Retrieve and display color information at the grid location int c = img.getRGB(x, y); this.setToolTipText(x + "," + y + ": " + String.format("%08X", c)); } @Override public void mouseDragged(MouseEvent e) { } public static void main(String[] args) { // Create a JFrame and add the Grid panel JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.add(new Grid("Tree.closedIcon")); f.pack(); f.setVisible(true); } }</code>
使用法
結果
グリッドが表示され、ユーザーはピクセル化された画像上でマウスを移動しながら色情報を取得できます。各セル。
以上が正確な色操作のために Java でピクセル化されたグリッドを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。