gpt4 book ai didi

java - 如何在一帧内添加GUI面板和DrawPanel?

转载 作者:行者123 更新时间:2023-12-01 16:13:58 25 4
gpt4 key购买 nike

我想在一帧内添加两个面板,我想要右侧的一些按钮和文本字段来编辑绘图面板类,但我不知道如何将 GUI 组件添加到 panel2 。每当我尝试将 GUI 组件添加到 panel2 时,它无法正常工作,我不明白为什么。

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Main {

public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle("WaferMap");
frame.setSize(1286, 829);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setVisible(true);
Container contentPane = frame.getContentPane();
contentPane.setLayout(new BorderLayout());
DrawingPanel panel1 = new DrawingPanel();
JPanel panel2 = new JPanel();

frame.add(panel1, BorderLayout.WEST);
panel1.setPreferredSize(new Dimension(1080, 800));

final JButton button = new JButton();

panel2.add(button, BorderLayout.EAST);
button.setBounds(50,50,100,50);
frame.add(panel2, BorderLayout.EAST);
panel2.setPreferredSize(new Dimension(200, 800));
}
}

这是主要的,我还有另一个类,名为 drawingPanelpaintComponent在里面。

最佳答案

  1. 不要使用 setPreferredSize()。布局管理器的工作是根据布局管理器的规则和添加到面板的组件的首选尺寸来计算面板的首选尺寸。

  2. 不要使用 setSize()。而是使用 pack()。框架的大小将根据添加到框架的所有组件的首选大小进行调整。

  3. 真正的问题是,默认情况下组件的大小为 (0. 0),因此没有任何内容可绘制。布局管理器的工作是为组件提供尺寸/位置。问题是您在将组件添加到面板之前使框架可见,因此布局管理器从未被调用。因此,解决方案是应在将所有组件添加到框架后调用 pack()setVisible(true) 语句。

请注意,本教程还有关于自定义绘画的部分,您应该阅读该部分,以便正确实现绘画,以确保您的DrawingPanel具有首选尺寸。

关于java - 如何在一帧内添加GUI面板和DrawPanel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62451270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com