java - 如何在一个框架中添加绘图(绘画方法)和另一个带有控件的面板?

标签 java swing

我需要一个JFrame,上面是paint()画的图,下面是JLabelJTextField组成的面板JButton 组件。

这可能吗?我应该怎么做?

最佳答案

I need to have a Jframe where the upper part is a drawing made by paint() and the lower part is a panel composed of JLabel, JTextField and JButtons.

你想做什么没有冲突。您可以拥有一个带有 2 个子面板的主 JPanel。一个在顶部用于绘图,另一个在底部用于包含 JComponents,例如 JButtons:

enter image description here

代码中的结构可能是这样的:

class MainPanel extends JPanel{
    private DrawingSpace drawingSpace;  //Customized JPanel for drawing
    private JPanel subPanel;

    public MainPanel(){
        setPreferredSize(new Dimension(400, 400));
        initComponents();
    }

    private void initComponents(){
        drawingSpace = new DrawingSpace();
        subPanel = new JPanel();
    }
}

您可以自定义 JPanel,如下所示(这是可选的):

class DrawingSpace extends JPanel
{
    public DrawingSpace(){
        //Set size..etc
    }

    @Override
    public void paintComponent(Graphics g){
        super.paintComponent(g);
        //perform your drawings here..
    }
}

JPanels 实现后,您只需将 MainPanel 实例添加到 JFrame 即可:

JFrame frame = new JFrame();
frame.add(new MainPanel());
//Other codes for JFrame not shown here

关于java - 如何在一个框架中添加绘图(绘画方法)和另一个带有控件的面板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35605187/

相关文章:

java - 如何在Android中使用Dicom图像进行图像处理?

java - Java HashSet<String> 的 contains() 方法会测试字符串或对象标识的相等性吗?

java - 如何为汉诺塔制作动画?

java - 如何使用除法将JLabel绑定(bind)到JSlider?

java - 在 Swing 中动态调整面板大小

java - 使用 swing Java 进行键盘输入

java - jTabbedPane 将焦点转移到下一张纸

java - 如何覆盖 System.out.println(map)

java - 按位置组织 RecyclerView 中的 View

java - JPanel.removeAll() 无法正常运行