Java Canvas или JPanel

При создании графического холста на Java, что было бы лучше расширить? Вы должны расширить JPanel или Canvas? Есть ли какие-то соображения по поводу производительности?

1 ответ

Если вам не нужно размещать другие компоненты в пользовательской области визуализации, подкласс JComponent часто все что нужно (JPanel больше ничего не дает, что особенно полезно).


Смешивание Swing с AWT

Кстати, будьте особенно осторожны, смешивая Swing с AWT. Обычно это вызывает проблемы рендеринга для плавающих элементов графического интерфейса Swing. 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);
    }
}

Скриншот

Снимок экрана диалога с использованием Java 6, когда JComboBox расширен.

Мы можем увидеть вершину Apples, но остальная часть списка отсутствует.

Другие вопросы по тегам