0

IntelliJ IDEA は、Swing フォームを記述するために .form ファイル形式を使用します。

例としてMyForm.formファイルを見てみましょう(関係のない内容はスキップします)

<component id="d32e0" class="javax.swing.JCheckBox">
    <properties>
        <text value="CheckBox"/>
    </properties>
</component>    

私の質問は簡単です:タグ「テキスト」の代わりに属性「テキスト」を使用しないのはなぜですか?

<component id="d32e0" class="javax.swing.JCheckBox" text="CheckBox">        
</component>    
4

2 に答える 2

1

いくつかの理由が考えられます:

  • 属性を使用すると、「プロパティ」属性 (「テキスト」など) と非プロパティ属性 (「id」、「クラス」など) を区別する必要があり、異なる方法で処理する必要があります。

  • Listネストされた構造を使用すると、またはプロパティのようなネストされたプロパティを設定することもできMapます。

  • 許可されるプロパティが事前にわかっていないため、属性が使用されている場合に XML 検証スキーマまたは DTD を定義するのは困難です。タグを使用すると、全体の構造を検証し、propertiesセクションにワイルドカードのみを入れることができます。

于 2013-07-16T18:17:34.950 に答える
0

次に、具象サブクラスがサポートしていない場合でも、XML の方言/文法はtext、すべての属性を許可する必要があります。論理的には、属性の値に依存します。実際、タグは、継承元である可能性のあるすべてのクラスのすべての可能な属性を許可する必要があります- オープンであるため、不可能です。componentComponenttextclasscomponentComponent

アトリビュート フォームは、単一の値の方が簡単に見えるかもしれませんが、複数のアトリビュート値を設定する必要がある場合は、リストとして記述した方が読みやすくなります。しかし、このファイルは手動で編集されていないと思います。

純粋な XML 方言でない場合は、(宣言されていない) 属性とリスト宣言の組み合わせが可能です。実はtextタグ自体がにおいがします。

于 2013-07-16T18:16:46.557 に答える