在
Java中制作图形画布时,扩展会更好吗?你应该扩展JPanel或Canvas吗?有任何性能考虑因素吗? 最佳答案 除非您需要在自定义渲染区域中定位其他组件,否则通常只需要对JComponent进行子类化(JPanel不再提供任何特别有用的组件).
将Swing与AWT混合
BTW – 特别警惕将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);
}
}
截图
扩展JComboBox时使用Java 6的对话框的屏幕截图.
我们可以看到苹果的顶部,但缺少列表的其余部分.