概要

Java(Swing)のクラスドキュメントで、修正した方が良さそうな日本語訳などをメモしています。

未修正

Cover method

SwingUtilities.getUnwrappedView(JViewport)

クリップボード転送

  • https://docs.oracle.com/javase/jp/8/docs/api/java/awt/image/RescaleOp.html
    • 計算で求められたサンプル値は、転送先イメージの最小および最大にクリップボード転送されます。
  • https://docs.oracle.com/javase/8/docs/api/java/awt/image/RescaleOp.html
    • The scaled sample values are clipped to the minimum/maximum representable in the destination image.
  • 変更案
    • 計算で求められたサンプル値は、転送先イメージの最小および最大でクリップされます。
    • スケーリングされたサンプル値は、転送先のイメージで表示できる最小、最大値で切り詰められます。
  • メモ
    • clipped to the minimum/maximumは、int clip(int num, int min, int max) { return Math.max(min, Math.min(num, max)); }の意味で、クリップボード転送は無関係のはず

HyperlinkEvent.EventType

このメソッドは推奨されません。

  • https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/DefaultListModel.html#getElementAt-int-
    • 注: このメソッドは推奨されません。推奨されるメソッドはget(int)です。これは1.2のCollections Frameworkで定義されたListインタフェースを実装します。
  • https://docs.oracle.com/javase/8/docs/api/javax/swing/DefaultListModel.html#getElementAt-int-
    • Note: Although this method is not deprecated, the preferred method to use is get(int), which implements the List interface defined in the 1.2 Collections framework.
  • 変更案
    • 推奨されるメソッドはget(int)ですが、このメソッドは非推奨ではありません。これは1.2のCollections Frameworkで定義されたListインタフェースを実装します。
  • メモ
    • get(int)の方が好ましいが、getElementAt(int)は非推奨ではない(@deprecatedはついていない)ので、コンパイラで警告されることもないようだ
    • 「これは1.2のCollections Frameworkで定義されたListインタフェースを実装します。」も意味がよく分からない...

ノードハンドルを表示するかどうか

すべての親を展開し常に非表示にする

  • https://docs.oracle.com/javase/jp/7/api/javax/swing/JTree.html#setExpandsSelectedPaths(boolean)
    • true の場合には、TreeSelectionModel または JTree が提供するカバーメソッドによりいつでも選択を変更でき、TreePath の親が展開され可視になります。 可視とは、JTree の可視矩形にかぎらず親パスが展開されている状態を意味します。
    • false の場合、ノード選択を変更すると親はすべて展開されても可視にはなりません。選択モデルのパスを、すべての親を展開し常に非表示にする場合には便利です。
  • https://docs.oracle.com/javase/8/docs/api/javax/swing/JTree.html#setExpandsSelectedPaths-boolean-
    • If true, any time the selection is changed, either via the TreeSelectionModel, or the cover methods provided by JTree, the TreePaths parents will be expanded to make them visible (visible meaning the parent path is expanded, not necessarily in the visible rectangle of the JTree).
    • If false, when the selection changes the nodes parent is not made visible (all its parents expanded). This is useful if you wish to have your selection model maintain paths that are not always visible (all parents expanded).
  • 変更案
    • true の場合、TreeSelectionModel または JTree が提供するカバーメソッドで選択が変更されると、その TreePath の親が展開されて選択ノードが可視状態になります。可視とは、JTree の可視矩形にかぎらず親パスが展開されている状態を意味します。
    • false の場合、ノード選択を変更しても親は可視(すべての親が展開された状態)にはなりません。選択モデルでパスを常に非表示(すべての親が折りたたまれた状態)にしておきたい場合には便利です。

拡大縮小しているときに行う削除や追加

そうでない場合は

追加することができます

scrollRectToVisible と、指定されたセルの境界

選択モードの設定

  • https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/tree/TreeSelectionModel.html#setSelectionMode-int-
    • 現在の選択範囲が新しいモードに対して有効でない場合は選択範囲を変更できます。
    • たとえば、モードが SINGLE_TREE_SELECTION に変更したときに 3 つの TreePath が選択された場合、一つの TreePath だけを選択できます。
    • どの TreePath を選択するかは使用する特定の実装によって決まります。
  • https://docs.oracle.com/javase/8/docs/api/javax/swing/tree/TreeSelectionModel.html#setSelectionMode-int-
    • This may change the selection if the current selection is not valid for the new mode.
    • For example, if three TreePaths are selected when the mode is changed to SINGLE_TREE_SELECTION, only one TreePath will remain selected.
    • It is up to the particular implementation to decide what TreePath remains selected.
  • 変更案
    • 現在の選択範囲が新しいモードに対して有効でない場合、選択範囲は変更されます。
    • たとえば、3 つの TreePath が選択された状態でモードを SINGLE_TREE_SELECTION に変更した場合、一つの TreePath の選択だけが残ります。
    • たとえば、モードを SINGLE_TREE_SELECTION に変更したときに 3 つの TreePath が選択されていた場合、一つの TreePath の選択状態だけが残されます。
    • どの TreePath が選択されたままになるかは使用する特定の実装によって決まります。

DefaultTableCellRendererの「実装上の注意」

  • https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/table/DefaultTableCellRenderer.html#override
    • そのため、このクラスでは、validate、invalidate、revalidate、repaint、およびfirePropertyChangeの各メソッドは無操作になるようにオーバーライドされ、isOpaqueメソッドのみがパフォーマンスを向上させるためにオーバーライドされます。
  • https://docs.oracle.com/javase/8/docs/api/javax/swing/table/DefaultTableCellRenderer.html#override
    • So this class overrides the validate, invalidate, revalidate, repaint, and firePropertyChange methods to be no-ops and override the isOpaque method solely to improve performance.
  • 変更案
    • そのため、このクラスは、 validate、invalidate、revalidate、repaint および firePropertyChange メソッドを何もしないようにオーバーライドし、単にパフォーマンスを向上させるために isOpaque メソッドをオーバーライドします。
  • メモ
    • firePropertyChange(String propertyName, boolean oldValue, boolean newValue)は、何もしないようにオーバーライドされるけど、firePropertyChange(String propertyName, Object oldValue, Object newValue)は、完全に何もしないようにはならない?

SwingUtilities.calculateInnerArea(...)

  • (イン・セット)の位置
    • 位置とサイズは、コンポーネントの境界を示し、ボーダー領域を含まないように調整されます (イン・セット)。
    • The position and size specify the bounds of the component, adjusted so as not to include the border area (the insets).
    • 位置とサイズは、コンポーネントの境界を示し、ボーダー領域(インセット)を含まないように調整されます。
  • このメソッドが?
    • c - 対象の JComponent。このメソッドが null を返す場合は null
    • c - the JComponent in question; if null, this method returns null
    • c - 対象の JComponent。null の場合、このメソッドは null を返す

JFormattedTextField により、

JFormattedTextField により、その2

Desktop フォルダになります。

'g' (ラテン小文字のG)が文字の例としてあげられます。

実装可能な?

通常の使い方では、

リスト選択の変更を待機する方法

  • https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/JList.html
    • リスト選択の変更を待機する方法としては、JList に直接 ListSelectionListener を追加することをお勧めします。すると、JList が選択モデルの変更を待機し、変更があった場合にリスナーに通知を送るようになります。
  • https://docs.oracle.com/javase/8/docs/api/javax/swing/JList.html
    • The preferred way to listen for changes in list selection is to add ListSelectionListeners directly to the JList. JList then takes care of listening to the the selection model and notifying your listeners of change.
  • 変更案
    • リスト選択の変更を監視する方法としては、JListに直接 ListSelectionListener を追加することをお勧めします。すると、JList が選択モデルの変更を監視し、変更を各リスナーに通知するようになります。

可能な場所であればどこでも、

整列できます。

含まれるコンポーネントは指定されます。

あとで

point が存在する場合

performance、操作

  • https://docs.oracle.com/javase/jp/8/docs/api/java/util/EnumSet.html
    • このクラスの操作に必要な領域や時間は、従来のintベースの「ビット・フラグ」に対する高品質かつ型保証された代替として十分に使用可能です。
  • https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html
    • The space and time performance of this class should be good enough to allow its use as a high-quality, typesafe alternative to traditional int-based "bit flags."
  • 変更案
    • このクラスの領域や時間性能(パフォーマンス)は、従来の int ベースの「ビット・フラグ」と比較しても十分に高品質で、型保証された代替として使用可能です。

アクセラレータの正しい文字

JEditorPane#scrollToReference(String)

  • デフォルトでは、このメソッドは HTMLDocument 内での参照位置を認識しているだけです。
  • By default, this method only knows how to locate a reference in an HTMLDocument.
    • デフォルトでは、このメソッドは HTMLDocument 内の参照位置を見つける方法だけ知っています。
    • デフォルトでは、このメソッドが参照位置を認識できるのは、HTMLDocument 内の場合だけです。
  • 実際のスクロール処理を実行するには、実装により scrollRectToVisible メソッドを呼び出します。
  • The implementation calls the scrollRectToVisible method to accomplish the actual scrolling.
    • 実装では、実際のスクロール処理を実行するために scrollRectToVisible メソッドを呼び出しています。
  • HTML 以外のドキュメント形式で参照位置へのスクロールが必要な場合は、このメソッドを再実装する必要があります。
  • If scrolling to a reference location is needed for document types other than HTML, this method should be reimplemented.
    • 参照位置へのスクロールが HTML 以外のドキュメント形式で必要な場合は、このメソッドを再実装する必要があります。
  • このメソッドは、コンポーネントが可視状態でない場合は無効です。
  • This method will have no effect if the component is not visible.
    • コンポーネントが可視状態でない場合、このメソッドは効果がありません。

括弧と読点

CSS プロパティー

  • https://docs.oracle.com/javase/jp/6/api/javax/swing/text/html/CSS.html
    • バックグラウンド位置
    • バックグラウンド
    • テキスト装飾 (点滅やオーバーラインの例外を含む)
    • 垂直配置 (スーパークラスだけ)
    • テキストの配置 (中央揃え)
    • 上部マージン
  • https://docs.oracle.com/javase/8/docs/api/javax/swing/text/html/CSS.html
    • background-position
    • background
    • text-decoration (with the exception of blink and overline)
    • vertical-align (only sup and super)
    • text-align (justify is treated as center)
    • margin-top
  • メモ
    • プロパティーが翻訳されてしまうのは1.7.0で修正されたが、text-align(justify is treated as center)が、「中央揃え」だけになるのは省略しすぎだと思う

1.7.0で修正済み

0 次の場合

親を基準にして位置を指定

ユーザーが入力した数値

setUpdateSelectionOnSort

閉じ括弧と訳、具象実装 (たとえば、TableRowSorter を参照します。

  • https://docs.oracle.com/javase/jp/6/api/javax/swing/DefaultRowSorter.html
    • デフォルトの Comparator を検出するには、具象実装 (たとえば、TableRowSorter を参照します。
    • デフォルトではソートは行われず (モデルと同様)、列はソート可能です。
  • https://docs.oracle.com/javase/8/docs/api/javax/swing/DefaultRowSorter.html
    • To find the default Comparators, see the concrete implementation (for example, TableRowSorter).
    • The default sort order is unsorted (the same as the model), and columns are sortable by default.
  • 変更案
    • デフォルトの Comparator を見つける場合は、具象実装 (たとえば、TableRowSorter) を参照してください。
    • デフォルトのソート順序は「ソートなし (モデルと同じ順序)」、また、各列は「ソート可能」がデフォルトです。

コンポーネントがデータ転送処理をサポートしていない場合は null が返されます。

コロンが抜けている?

  • https://docs.oracle.com/javase/jp/6/api/java/awt/Window.html
    • ウィンドウは、WindowEvents、WindowOpened、WindowClosed、WindowGainedFocus および WindowLostFocus を生成することができます。
  • https://docs.oracle.com/javase/8/docs/api/java/awt/Window.html
    • Windows are capable of generating the following WindowEvents: WindowOpened, WindowClosed, WindowGainedFocus, WindowLostFocus.
  • 変更案
    • ウィンドウは、以下のウィンドウイベントを生成できます: WindowOpened、WindowClosed、WindowGainedFocus、WindowLostFocus
    • ウィンドウは、WindowOpened、WindowClosed、WindowGainedFocus、および WindowLostFocus の WindowEvents を生成できます。
  • メモ
    • java.awt.Dialogは、以下のようになっている
    • https://docs.oracle.com/javase/jp/6/api/java/awt/Dialog.html
      • ダイアログは、WindowOpened、WindowClosing、WindowClosed、WindowActivated、WindowDeactivated、WindowGainedFocus、および WindowLostFocus の WindowEvents を生成できます。
      • Dialogs are capable of generating the following WindowEvents: WindowOpened, WindowClosing, WindowClosed, WindowActivated, WindowDeactivated, WindowGainedFocus, WindowLostFocus.
    • java.awt.Frameは、以下のようになっている
    • https://docs.oracle.com/javase/jp/6/api/java/awt/Frame.html
      • フレームは次の型の WindowEvent を生成できます。
      • Frames are capable of generating the following types of WindowEvents:

コロンのあとに例(数値)が重複して現れる

最後のサイズ変更できない Cursor

public void setCursor(Cursor cursor) {
    if (cursor == null) {
        lastCursor = null;
        super.setCursor(cursor);
        return;
    }
    int type = cursor.getType();
    if (!(type == Cursor.SW_RESIZE_CURSOR  ||
          type == Cursor.SE_RESIZE_CURSOR  ||
          type == Cursor.NW_RESIZE_CURSOR  ||
          type == Cursor.NE_RESIZE_CURSOR  ||
          type == Cursor.N_RESIZE_CURSOR   ||
          type == Cursor.S_RESIZE_CURSOR   ||
          type == Cursor.W_RESIZE_CURSOR   ||
          type == Cursor.E_RESIZE_CURSOR)) {
        lastCursor = cursor;
    }
    super.setCursor(cursor);
}

JPasswordField と JTextField

  • https://docs.oracle.com/javase/jp/6/api/javax/swing/package-summary.html
    • JPasswordField は、1 行のテキストの編集を可能にする、軽量コンポーネントです。
    • JTextField は、1 行のテキストの編集を可能にする軽量コンポーネントです。
  • https://docs.oracle.com/javase/6/docs/api/javax/swing/package-summary.html
    • JPasswordField is a lightweight component that allows the editing of a single line of text where the view indicates something was typed, but does not show the original characters.
    • JTextField is a lightweight component that allows the editing of a single line of text.
  • メモ
    • JPasswordFieldの説明が途中で途切れて、JTextFieldの説明とほぼ同じになっている?

他は「copy」などのようにカギ括弧なのに、ここだけ、"link"?

例を示します。

  • https://docs.oracle.com/javase/jp/6/api/javax/swing/JTable.html
    • RowSorter を直接設定します。例を示します。table.setRowSorter(new TableRowSorter(model)).
    • autoCreateRowSorter プロパティーを true に設定し、JTable が自動的に RowSorter を作成するようにします。例を示します。setAutoCreateRowSorter(true).
  • https://docs.oracle.com/javase/8/docs/api/javax/swing/JTable.html
    • Directly set the RowSorter. For example: table.setRowSorter(new TableRowSorter(model)).
    • Set the autoCreateRowSorter property to true, so that the JTable creates a RowSorter for you. For example: setAutoCreateRowSorter(true).
  • 変更案
    • RowSorter を直接設定します。例: table.setRowSorter(new TableRowSorter(model));
    • autoCreateRowSorter プロパティーを true に設定し、JTable が自動的に RowSorter を作成するようにします。例: table.setAutoCreateRowSorter(true);

インタフェース Comparable<T>

1.8.0で修正済み

セキュリティーマネージャー、セキュリティマネージャ、セキュリティマネージャー

検索すると両方大量にあるみたい。導入されたバージョンで、ルールが異なる?と思ったけど、同じ 1.5 でもセキュリティマネージャーがある。

統一するとしたら、セキュリティマネージャー? 追記: 1.8.0で、セキュリティ・マネージャに統一された。

ユーザードロップアクション と ユーザドロップアクション

1.8.0では、ユーザー・ドロップ・アクションに統一されている

Text、Number

Year、Month、General time zone などは年、月、一般的なタイムゾーンになっているし、リンク先もテキスト、数値になっているので揃えたほうがいいかも。

コメント