以下のコードでは、JButtonを渡しています。そのラベルはcreateKeyboard()
メソッドに渡しています。目標は、正しい順序でJPanelにJButtonを追加して、QWERTYキーボード形式で正しく表示されるようにすることです。ボタンとそれに対応するラベルは、A〜Zから始まるこのメソッドに渡されます。複数の文字列に文字が含まれているかどうかを効率的に確認する
このメソッドは文字をソートし、正しいパネルに追加します。私はこれを行うより効率的な方法があるかどうかを知りたいのですが、今のところ私はこれを達成するために複数のforループを使用していますが、これを行うにはより良い方法が必要であると確信しています。
public void addKeyboard(char c, JButton button) {
String QP = "QWERTYUIOP";
String AL = "ASDFGHJKL";
String ZM = "ZXCVBNM";
keyboardQP = new ArrayList<JButton>(); //JButton ArrayLists
keyboardAL = new ArrayList<JButton>();
keyboardZM = new ArrayList<JButton>();
for (int i = 0; i < QP.length(); i ++) {
if (c == QP.charAt(i)) {
keyboardQP.add(button);
}
}
for (int i = 0; i < AL.length(); i ++) {
if (c == AL.charAt(i)) {
keyboardAL.add(button);
}
}
for (int i = 0; i < ZM.length(); i ++) {
if (c == ZM.charAt(i)) {
keyboardZM.add(button);
}
}
小さな改良点:メソッドが呼び出されるたびに 'String QP =" QWERTYUIOP ";のような文字列を再定義する必要はありません。それぞれを一定にします(静的最終フィールド)。また、各メソッド呼び出しでArrayListを初期化しないでください。 – c0der