Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaで丸められたJTextFieldを実装するにはどうすればよいですか?


JTextField JTextComponentのサブクラスです クラスであり、ユーザーが単一行形式でテキスト値を入力できるようにする最も重要なコンポーネントの1つです。 。 JTextFieldクラスは、 ActionListenerを生成します 内部に入力を入力しようとしたときのインターフェイス。 JTextFieldクラスの重要なメソッドは、 setText()、getText()、です。 setEnabled() デフォルトでは、JTextfieldは長方形ですが、丸い形を実装することもできます。 JTextField RoundRectangle2Dを使用する クラスであり、 paintComponent()をオーバーライドする必要があります メソッド。

import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
public class RoundedJTextFieldTest extends JFrame {
   private JTextField tf;
   public RoundedJTextFieldTest() {
      setTitle("RoundedJTextField Test");
      setLayout(new BorderLayout());
      tf = new RoundedJTextField(15);
      add(tf, BorderLayout.NORTH);
      setSize(375, 250);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String args[]) {
      new RoundedJTextFieldTest();
   }
}
// implement a round-shaped JTextField
class RoundedJTextField extends JTextField {
   private Shape shape;
   public RoundedJTextField(int size) {
   super(size);
   setOpaque(false);
}
protected void paintComponent(Graphics g) {
   g.setColor(getBackground());
   g.fillRoundRect(0, 0, getWidth()-1, getHeight()-1, 15, 15);
   super.paintComponent(g);
}
protected void paintBorder(Graphics g) {
   g.setColor(getForeground());
   g.drawRoundRect(0, 0, getWidth()-1, getHeight()-1, 15, 15);
}
public boolean contains(int x, int y) {
   if (shape == null || !shape.getBounds().equals(getBounds())) {
      shape = new RoundRectangle2D.Float(0, 0, getWidth()-1, getHeight()-1, 15, 15);
   }
   return shape.contains(x, y);
   }
}

出力

Javaで丸められたJTextFieldを実装するにはどうすればよいですか?


  1. JTextFieldがJavaで数値のみを受け入れるようにするにはどうすればよいですか?

    デフォルトでは、 JTextField 数字を許可できます 、文字 、および特別 キャラクター 。 JTextFieldに入力されたユーザー入力の検証 特に入力文字列をintなどの数値に変換する必要がある場合は、難しい場合があります。 次の例では、 JTextField 数値のみを入力できます 。 例 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JTextFieldValidation extends JFrame {    JTextField tf;

  2. JavaでJWindowを使用してスプラッシュ画面を実装するにはどうすればよいですか?

    JWindow は、ユーザーのデスクトップのどこにでも表示できるコンテナです。 タイトルバーはありません 、ウィンドウ 管理 ボタン、 JFrameのようなものです。 JWindow JRootPaneが含まれています その唯一の子クラスとして。 contentPane JWindowの子の親になることができます 。 JFrameのように 、 JWindow は別のトップレベルのコンテナであり、装飾されていないJFrameとして機能します。 タイトルバー、ウィンドウメニューなどの機能はありません 、など。 JWindow スプラッシュ画面ウィンドウとして使用できます これ