1

テキストボックスの上にパネルを置くだけでなく、JTextField (または他の Swing コントロール) の上に斜めの線を描くことは可能ですか?

4

1 に答える 1

5

カスタム JTextField を作成し、paint() メソッドをオーバーライドします。何かのようなもの:

public void paint(Graphics g)
{
    super.paint(g);
    //  do custom painting here
}

注: 通常、カスタム ペイントは、コンポーネントの paintComponent(..) メソッドをオーバーライドすることによって行われます。したがって、次のこともできます。

public void paintComponent(Graphics g)
{
    super.paintComponent(g);
    //  do custom painting here
}

JTextField には子コンポーネントが追加されていないため、結果は同じになります。ただし、子コンポーネントをサポートするコンポーネント (JPanel など) に対角線を描画する場合は、このアプローチが機能するため、paint(...) を使用することをお勧めします。カスタム ペイントに関する Swing チュートリアルのセクションを読んで、2 つの方法の違いを理解しておいてください。

または、別のオプションとして、選択したテキストに対角線を引くカスタム ハイライターを作成することもできます。RectanglePainterを使用すると、このアプローチを開始できます。

そのため、要件に応じていくつかの異なるオプションがあります。

于 2009-12-08T18:34:52.127 に答える