ホームページ >Java >&#&チュートリアル >Javaでボタンのクリックを使用してJPanelに線を描く方法?
Java でボタンをクリックして JPanel に線を描く方法
指定されたコードは、グラフィカル ユーザー インターフェイス (GUI) を提供します。 JPanel といくつかのボタン。目的は、ボタンがクリックされたときに JPanel に線を描画することです。
線の描画
JPanel に線を描画するには、drawLine() メソッドを使用できます。 Graphics オブジェクトの:
public void paint(Graphics graphics) { graphics.drawLine(10, 20, 300, 310); }
このコードは、点 (10, 20) からポイント (300、310)。これらの座標を変更して、さまざまな位置や方向に線を描くことができます。
マウス イベントによるイベント処理
ボタンのクリックやマウスの動きなどのユーザー インタラクションを処理するには、イベントリスナーを使用できます。この場合、マウス リスナーを使用して、ユーザーが JPanel をクリックしたことを検出します。
public class MouseHandler extends MouseAdapter { @Override public void mouseClicked(MouseEvent arg0) { ///////////// } }
mouseClicked メソッドで、ユーザーのクリックに基づいて線を描画するコードを作成できます。
GUI との統合
線画コードを GUI と統合するにはGUI の場合、JPanel にボタンを追加する必要があります。ボタンがクリックされると、MouseHandler の MouseClicked メソッドがトリガーされ、線が描画されます。
JLabel label = new JLabel("New label"); label.addMouseListener(new MouseHandler() { @Override public void mouseClicked(MouseEvent arg0) { ///////////// } }); contentPane.add(label);
この例では、「新しいラベル」という名前のボタンが JPanel に追加されます。クリックされると、MouseHandler の MouseClicked メソッドが呼び出されます。 MouseClicked メソッドを変更して、線を描画するためのコードを含めることができます。
複数の線の処理
複数の線を描画する場合は、クリックされた点を保存できます。ユーザーがそれらの間に線を引きます。 List
実装例
これは、JPanel で複数の線を描画する方法を示す完全な例です。ボタンのクリック:
import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.EventQueue; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.RenderingHints; import java.awt.event.ActionEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.List; import javax.swing.AbstractAction; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.KeyStroke; public class Main { private ArrayList<Point> points = new ArrayList<>(); private boolean drawing; public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { new Main().display(); } }); } private void display() { JFrame f = new JFrame("LinePanel"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(); panel.setPreferredSize(new Dimension(640, 480)); panel.addMouseListener(new MouseHandler()); panel.addMouseMotionListener(new MouseHandler()); f.add(panel); JButton clearButton = new JButton("Clear"); clearButton.addActionListener(new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { points.clear(); panel.repaint(); } }); f.add(clearButton, BorderLayout.SOUTH); f.pack(); f.setLocationRelativeTo(null); f.setVisible(true); } private class MouseHandler extends MouseAdapter { @Override public void mousePressed(MouseEvent e) { drawing = true; points.add(e.getPoint()); panel.repaint(); } @Override public void mouseReleased(MouseEvent e) { drawing = false; panel.repaint(); } @Override public void mouseDragged(MouseEvent e) { if (drawing) { points.add(e.getPoint()); panel.repaint(); } } } }
この例では、JPanel と「Clear」ボタンを備えた JFrame を作成します。ユーザーが JPanel をクリックすると、線の描画が開始されます。マウスを動かすと線が伸びます。マウスを放すと線が完成します。 「クリア」ボタンを使用すると、すべての行をクリアして最初からやり直すことができます。
以上がJavaでボタンのクリックを使用してJPanelに線を描く方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。