質問は本当に、私はJTextFieldの背景を半透明にしたいと思います。私はそれをフラッシュさせるためにタイマーを使用しています。JTextFieldを半透明にしてください
私は伝統的なtextField.setBackground()を使用すると、それぞれのフラッシュでテキストフィールドが暗くなるという奇妙なグラフィックグリッチが発生することが分かりました。いくつかは、私はテキストフィールドが不透明に設定することをお勧めします、また
name = new JTextField(15) {
@Override
protected void paintComponent(Graphics g) {
g.setColor(this.getBackground());
g.fillRect(getX(), getY(), getWidth(), getHeight());
super.paintComponent(g);
}
};
:
だから、オンラインで検索した後、私は次のコードでのJTextFieldのペイントメソッドをオーバーライドしてみました(下記参照) booleanをfalseにします。これは私がやったと無駄に、今でも任意の赤い点滅がないと私は単純にこれを取得:それはここに、役立ちます私はフィールドが点滅するために使用していたコードである
fields with field.setOpaque(false);
念のため。
public void flashField(JTextField field, Color flashColor, final int flashDelay, final int numberOfFlashes) {
timers.add(new Timer(flashDelay, new ActionListener() {
int counter = 0;
@Override
public void actionPerformed(ActionEvent e) {
counter++;
if (counter % 2 == 0)
field.setBackground(
new Color(flashColor.getRed(), flashColor.getBlue(), flashColor.getGreen(), 50));
else
field.setBackground(Color.WHITE);
if (counter == (numberOfFlashes * 2) + 1) {
((Timer) e.getSource()).stop();
}
field.repaint();
}
}));
timers.get(timers.size() - 1).start();
}