私はJTextFieldのを作成し、その上のJLabelを挿入し、定義されていますJLabelのロックアイコン。 JTextFieldが編集可能な場合、上の画像が示すようにJLabelが表示されますが、JTextFieldが編集可能でない場合、画像はまったく表示されません。
どうすれば修正できますか?
2)resizibale Container
にごCustom JTextField
を入れているので、Icon
のための位置に慎重に)
私はJTextFieldのを作成し、その上のJLabelを挿入し、定義されていますJLabelのロックアイコン。 JTextFieldが編集可能な場合、上の画像が示すようにJLabelが表示されますが、JTextFieldが編集可能でない場合、画像はまったく表示されません。
どうすれば修正できますか?
2)resizibale Container
にごCustom JTextField
を入れているので、Icon
のための位置に慎重に)
でsetEditable(true)
とsetEditable(false)
のコンストラクタを作成します。テキストフィールドから枠線を削除し、パネルの周りに共通の枠線を追加します。背景をテキストフィールドの背景と同じに設定します。
すてきなソリューションをお寄せいただきありがとうございます。それは私にとっては最も簡単でした。最終的なコンポーネントは非常に見栄えが良かった。ありがとうStanislavL。 – Brad
はJTextField
を拡張する独自のクラスを作成し、このクラス内で、あなたはpaintComponent(Graphics g)
1をオーバライドする必要がありますIcon
が正しく動作するようにしてください。Custom JTextField
の場合はIcon
、
3)あなたは、アイコンのラベル()とパネル内のテキストフィールドの両方を追加しようとすることができますIcon
なぜjTextPaneを使用しないのですか?
try {
// Get the text pane's document
JTextPane textPane = new JTextPane();
StyledDocument doc = (StyledDocument)textPane.getDocument();
// The image must first be wrapped in a style
Style style = doc.addStyle("StyleName", null);
StyleConstants.setIcon(style, new ImageIcon("imagefile"));
// Insert the image at the end of the text
doc.insertString(doc.getLength(), "ignored text", style);
} catch (BadLocationException e) {
}
Border
IconBorderと呼ぶことができます。 MatteIconのソースコードを見て、それをカスタマイズして単一の画像だけをペイントしてください。次に、テキストフィールドにBorderを追加します。
Border border = new CompoundBorder(textField.getBorder(), new IconBorder(...));
textField.setBorder(border);
Java 7を使用していますか?次に、JLayeredPaneを使用します。
すぐに役立つように、[SSCCE](http://pscode.org/sscce.html)を投稿してください。 コード内に小さな画像を生成します。 –