4

Javaでグラフィックキャンバスを作成する場合、どちらを拡張するのが良いでしょうか? JPanel または Canvas を拡張する必要がありますか? パフォーマンスに関する考慮事項はありますか?

4

1 に答える 1

2

JComponentカスタムレンダリング領域内に他のコンポーネントを配置する必要がない限り、多くの場合、必要なのはaのサブクラス化JPanelだけです(特に役立つものは何もありません)。


SwingとAWTの混合

ところで-SwingとAWTの混合には特に注意してください。これは通常、SwingフローティングGUI要素のレンダリングの問題を引き起こします。Java 7は、SwingとAWTベースのコンポーネントをシームレスに組み合わせる機能を提供することを約束します。

例えば

import java.awt.*;
import javax.swing.*;

class MixSwingAwt {

    public static void main(String[] args) {
        JPanel p = new JPanel(new BorderLayout(10,10));

        String[] fruit = {"Apples", "Oranges", "Pears"};
        JComboBox fruitChoice = new JComboBox(fruit);
        p.add(fruitChoice, BorderLayout.NORTH);

        p.add(new TextArea(10,20));

        JOptionPane.showMessageDialog(null, p);
    }
}

スクリーンショット

が展開されたときのJava6を使用したダイアログのスクリーンショットJComboBoxここに画像の説明を入力してください

の上部が表示されますApplesが、リストの残りの部分が欠落しています。

于 2011-04-20T23:12:38.507 に答える