Java Canvas или JPanel - PullRequest
       16

Java Canvas или JPanel

4 голосов
/ 21 апреля 2011

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

1 Ответ

2 голосов
/ 21 апреля 2011

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


Mixing 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 развернут. enter image description here

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

...