Java Canvas或JPanel


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的对话框的屏幕截图.

我们可以看到苹果的顶部,但缺少列表的其余部分.

点赞