用Java制作图形画布时,哪个更好扩展?您应该扩展 JPanel 还是 Canvas?是否有任何性能考虑?
问问题
4828 次
1 回答
2
除非您需要在自定义渲染区域内放置其他组件,否则子类JComponent
通常是所有必要的(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);
}
}
截屏
展开时使用 Java 6 的对话框的屏幕截图JComboBox
。
我们可以看到 的顶部Apples
,但缺少列表的其余部分。
于 2011-04-20T23:12:38.507 回答