ArrayListをJavaで読み取り専用にする方法は?
unmodizableList() java.util.Collectionsのメソッド classは、Listインターフェイスのオブジェクト(そのクラスを実装するオブジェクト)を受け入れ、指定されたオブジェクトの変更不可能な形式を返します。ユーザーは、取得したリストへの読み取り専用アクセスのみが可能です。
例
次のJavaプログラムは、ArrayListオブジェクトを作成し、それに要素を追加して、読み取り専用のListオブジェクトに変換します。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ArrayListReadOnly {
public static void main(String[] args) {
//Instantiating an ArrayList object
ArrayList<String> list = new ArrayList<String>();
list.add("JavaFx");
list.add("Java");
list.add("WebGL");
list.add("OpenCV");
System.out.println(list);
//Converting the ArrayList to read only list
List<String> myList = (List<String>) Collections.unmodifiableList(list);
System.out.println("Array list converted to read only "+list);
}
} 出力
[JavaFx, Java, WebGL, OpenCV] Array list converted to read only [JavaFx, Java, WebGL, OpenCV]
Listオブジェクトの読み取り専用ビューを取得すると、その内容を変更することはできません。つまり、 UnsupportedOperationException を実行した場合、要素を直接追加または削除したり、Iteratorオブジェクトを使用したりすることはできません。 引き上げられます。
例
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ArrayListReadOnly {
public static void main(String[] args) {
//Instantiating an ArrayList object
ArrayList<String> list = new ArrayList<String>();
list.add("JavaFx");
list.add("Java");
list.add("WebGL");
list.add("OpenCV");
System.out.println(list);
//Converting the ArrayList to read only list
List<String> myList = (List<String>) Collections.unmodifiableList(list);
myList.add("CoffeeScript");
System.out.println("Array list converted to read only "+myList);
}
} 実行時例外
[JavaFx, Java, WebGL, OpenCV] Exception in thread "main" java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableCollection.add(Unknown Source) at SEPTEMBER.remaining.ArrayListReadOnly.main(ArrayListReadOnly.java:20)
-
JTextFieldがJavaで数値のみを受け入れるようにするにはどうすればよいですか?
デフォルトでは、 JTextField 数字を許可できます 、文字 、および特別 キャラクター 。 JTextFieldに入力されたユーザー入力の検証 特に入力文字列をintなどの数値に変換する必要がある場合は、難しい場合があります。 次の例では、 JTextField 数値のみを入力できます 。 例 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JTextFieldValidation extends JFrame { JTextField tf;
-
Tkinterテキストウィジェットを読み取り専用にする方法は?
Tkinterでは、テキストウィジェットを無効にしたい場合があります。これを実現するために、テキスト構成をDISABLEDとして設定できます。これにより、テキストウィジェットがフリーズし、読み取り専用になります。 この例では、テキストウィジェットと、ユーザーがテキストウィジェットを即座に無効化またはフリーズできるボタンを作成します。 例 #Import the library from tkinter import * #Create an instance of window win= Tk() #Set the geometry of the window win.geometry(