質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

1726閲覧

ひらがなのチェックが機能しない

sait_you

総合スコア6

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2020/05/15 04:42

前提・実現したいこと

ひらがな以外が所定のテキストフィールドに入力された際に
エラーが発生するようにしたいのですが、何も入力していないのに
エラーが表示されます。
また、それ以外にもエラーが起きるように設定しているのですが、
エラーが発生しないものもあります。

該当のソースコード

Java

1//姓 2 familynameField = new JTextFg("鈴木"); 3 familynameField.setBounds(163, 48, 84, 28); 4 contentPane.add(familynameField); 5 familynameField.setColumns(10); 6 7 8 //名 9 nameField = new JTextFg("太郎"); 10 nameField.setBounds(295, 48, 84, 28); 11 contentPane.add(nameField); 12 nameField.setColumns(10); 13 14 //せい 15 familyField = new JTextFg("すずき"); 16 familyField.setBounds(163, 87, 84, 28); 17 contentPane.add(familyField); 18 familyField.setColumns(10); 19 20 //めい 21 lastnameField = new JTextFg("たろう"); 22 lastnameField.setBounds(295, 87, 84, 28); 23 contentPane.add(lastnameField); 24 lastnameField.setColumns(10); 25 26 //郵便番号 27 postalcodeField = new JTextFg("1234567"); 28 postalcodeField.setBounds(91, 165, 96, 28); 29 contentPane.add(postalcodeField); 30 postalcodeField.setColumns(10); 31 32 //住所 33 streetaddressField = new JTextFg("番地まで 例:東京都世田谷区三宿1-16"); 34 streetaddressField.setBounds(91, 203, 302, 28); 35 contentPane.add(streetaddressField); 36 streetaddressField.setColumns(10); 37 38 //携帯電話番号 39 mobilephoneField = new JTextFg("09012345678"); 40 mobilephoneField.setBounds(91, 241, 206, 28); 41 contentPane.add(mobilephoneField); 42 mobilephoneField.setColumns(10); 43 44 //ログインID 45 idField = new JTextFg("8文字以内の半角英数字で入力"); 46 idField.setBounds(91, 279, 206, 28); 47 contentPane.add(idField); 48 idField.setColumns(10); 49 50 //ログインPW 51 pwField = new JTextFg("8文字以内の半角英数字で入力"); 52 pwField.setBounds(91, 317, 206, 28); 53 contentPane.add(pwField); 54 pwField.setColumns(10); 55 56//住所文字内容チェック 57 Pattern p = Pattern.compile("^[A-Za-z]+$"); 58 Matcher m = p.matcher(streetaddressField.getText()); 59 if(m.find()) { 60 JOptionPane.showMessageDialog(contentPane, "住所欄に英文字が入力されています。"); 61 return; 62 } 63 //姓文字内容チェック 64 p = Pattern.compile("^[一-龠]*$"); 65 m = p.matcher(familynameField.getText()); 66 if(!(m.find())) { 67 JOptionPane.showMessageDialog(contentPane, "「姓」に漢字以外が入力されています。"); 68 return; 69 } 70 //名文字内容チェック 71 p = Pattern.compile("^[一-龠]*$"); 72 m = p.matcher(nameField.getText()); 73 if(!(m.find())) { 74 JOptionPane.showMessageDialog(contentPane, "「名」に漢字以外が入力されています。"); 75 return; 76 } 77 //ひらがなチェック(せい) 78 p = Pattern.compile("^[\u3040-\u309F]+$"); 79 m = p.matcher(familyField.getText()); 80 if(!(m.find())) { 81 JOptionPane.showMessageDialog(contentPane, "「せい」にひらがな以外が入力されています。"); 82 return; 83 } 84 //ひらがなチェック(めい) 85 p = Pattern.compile("^[\u3040-\u309F]+$"); 86 m = p.matcher(lastnameField.getText()); 87 if(!(m.find())) { 88 JOptionPane.showMessageDialog(contentPane, "「めい」にひらがな以外が入力されています。"); 89 return; 90 }

以下にJTextFgクラスを記載いたします。

Java

1package Book; 2 3import java.awt.Color; 4import java.awt.Font; 5import java.awt.Graphics; 6import java.awt.image.BufferedImage; 7 8import javax.swing.JTextField; 9 10public class JTextFg extends JTextField { 11 private static final long serialVersionUID = 1L; 12 Color cur=Color.GRAY; 13 BufferedImage bi=new BufferedImage(300,28,BufferedImage.TYPE_INT_RGB); 14 JTextFg(String msg){ 15 Graphics g0=bi.getGraphics(); 16 g0.setColor(Color.WHITE); 17 g0.fillRect(0, 0, bi.getWidth(), bi.getHeight()); 18 g0.setColor(Color.LIGHT_GRAY); 19 g0.setFont(new Font(Font.DIALOG,Font.BOLD,14)); 20 g0.drawString(msg,3,20); 21 } 22 public void paintComponent(Graphics g) { 23 if (getText().trim().isEmpty()) { 24 this.setOpaque(false); 25 g.drawImage(bi, 0, 0, null); 26 }else{ 27 super.paintComponent(g); 28 this.setOpaque(true); 29 } 30 super.paintComponent(g); // つねに実行 31 } 32}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sait_you

2020/05/17 23:26

確認遅くなりました。 上記のように*で行ってみたところ上手く起動しました! ありがとうございます!
guest

回答1

0

自己解決

hoshi-takanoriさんより頂いた以下のサイトを参考にコードを変更したところ、無事に解消。

https://style.potepan.com/articles/9170.html

投稿2020/05/17 23:28

sait_you

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問