7

こんにちは、2 つのテキスト フィールドを配置した 1 つのスイング フレームを用意しました。jtextfield の片側 (つまり、右の境界線) に色を付ける方法はありますか? 提案してください。いろいろ調べたのですが、見つかりませんでした。よろしくお願いします。

4

3 に答える 3

9

テキストフィールドに境界線を追加します。これは次の行に沿ったものです。

Border oldBorder = jTextField.getBorder();
Border redBorder = BorderFactory.createMatteBorder(0, 0, 0, 5, Color.RED);
Border newBorder = BorderFactory.createCompoundBorder(redBorder, oldBorder);
jTextField.setBorder(newBorder);

このアプローチでは、古い境界線が保持され、赤い(部分的な)境界線の内側にラップされます。

于 2012-08-13T13:38:43.423 に答える
9

以下の例では、5 ピクセルの左側の境界線を追加しました。

JTextField jtf = new JTextField();        
jtf.setBorder(BorderFactory.createMatteBorder(0, 5, 0, 0, Color.BLACK));

これは右側の境界線です:

jtf.setBorder(BorderFactory.createMatteBorder(0, 0, 0, 5, Color.BLACK));

これがあなたが求めているものであることを願っています

于 2012-08-13T13:33:36.140 に答える
4

CustomBorderクラスから拡張し、Borderコンポーネント用に独自のカスタム境界線を作成することで、独自のクラスを作成できます。のインスタンスを次のように呼び出して設定setBorder()します。Component

class MyBorder implements Border {

    @Override
    public void paintBorder(Component cmpnt, Graphics grphcs, int x, int y, int width, int height) {
        //draw your border here
    }

    @Override
    public Insets getBorderInsets(Component cmpnt) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean isBorderOpaque() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

}

参照:

于 2012-08-13T13:32:04.630 に答える