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
, но остальная часть списка отсутствует.