Javaのpaint()メソッドとrepaint()メソッドの違いは何ですか?
- paint(): このメソッドは、このコンポーネントをペイントするための命令を保持します。 Java Swingでは、paintが paintBorder()を呼び出すときに、paint()メソッドの代わりにpaintComponent()メソッドを変更できます。 paintComponent() およびpaintChildren() メソッド。このメソッドを直接呼び出すことはできません。代わりに、 repaint()を呼び出すことができます。 。
- repaint() :このメソッドはオーバーライドできません。 update()-> paint()を制御します サイクル。このメソッドを呼び出して、コンポーネントを取得してそれ自体を再描画できます。コンポーネントの外観を変更したがサイズは変更しなかった場合は、このメソッドを呼び出すことができます。
例
import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; public class PaintRepaintTest extends JPanel implements MouseListener { private Vector v; public PaintRepaintTest() { v = new Vector(); setBackground(Color.white); addMouseListener(this); } public void paint(Graphics g) { // paint() method super.paint(g); g.setColor(Color.black); Enumeration enumeration = v.elements(); while(enumeration.hasMoreElements()) { Point p = (Point)(enumeration.nextElement()); g.drawRect(p.x-20, p.y-20, 40, 40); } } public void mousePressed(MouseEvent me) { v.add(me.getPoint()); repaint(); // call repaint() method } public void mouseClicked(MouseEvent me) {} public void mouseEntered(MouseEvent me) {} public void mouseExited(MouseEvent me) {} public void mouseReleased(MouseEvent me) {} public static void main(String args[]) { JFrame frame = new JFrame(); frame.getContentPane().add(new PaintRepaintTest()); frame.setTitle("PaintRepaint Test"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.setSize(375, 250); frame.setVisible(true); } }
上記のプログラムでは、正方形を描くことができる画面をクリックすると。 mousePressed() メソッドでは、 repaint()を呼び出すことができます メソッド。
出力
-
JavaのJFrameとJDialogの違いは何ですか?
JFrame フレームに追加されたコンポーネントはそのコンテンツと呼ばれ、 contentPaneによって管理されます。 。 JFrameにコンポーネントを追加するには 、 contentPaneを使用する必要があります 代わりに。 JFrame タイトルのウィンドウが含まれています 、境界線 、(オプション)メニュー バー およびユーザー -指定 コンポーネント 。 JFrame 移動できます 、サイズ変更 、アイコン化 JComponentのサブクラスではありません 。 デフォルトでは、JFrameは左上の角に表示されます 画面のr。指定した場所にフレームを表示するには
-
JavaのGridLayoutとGridBagLayoutの違いは何ですか?
GridLayout すべてのコンポーネントを長方形のグリッドに配置し、同じサイズの長方形に分割します 各コンポーネントは長方形の中に配置されますが、 GridBagLayout 柔軟です レイアウト マネージャー コンポーネントを垂直方向と水平方向に整列させます コンポーネントが同じサイズである必要はありません。各GridBagLayout オブジェクトは、動的な長方形のセルのグリッドを維持します 各コンポーネントがコンポーネントと呼ばれる1つ以上のセルを占有します 表示 エリア 。 GridLayout GridLayout コンポーネントを長方形のグリッドに配置します。セル