テキストボックスの上にパネルを置くだけでなく、JTextField (または他の Swing コントロール) の上に斜めの線を描くことは可能ですか?
1477 次
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 に答える