我需要一个JFrame
,上面是paint()画的图,下面是JLabel
、JTextField组成的面板
和 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:
代码中的结构可能是这样的:
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/