我已经在网上看了,但我仍然无法理解如何将图形添加到JPanel
以下是我的panel类的代码:
public class GamePanel extends JPanel {
public GamePanel(){
}
public void paintComponent(Graphics g) {
g.drawString("asd", 5, 5);
}
}
我的主要方法是:
public static void main(String[] args) {
frame.setLayout(new FlowLayout());
frame.getContentPane().setBackground(Color.WHITE);
//i is an instance of GamePanel
frame.add(i);
frame.setPreferredSize(new Dimension(500, 500));
frame.pack();
frame.setVisible(true);
}
文本只会出现在屏幕的一小部分(这适用于我试图绘制的任何图形对象)。我做错了什么?
两件事跳出来了
FlowLayout
将使用此信息来决定如何最好地布局您的面板。因为大小是0x0,重新绘制管理器将忽略它。尝试覆盖getPreferredSize
方法并返回适当的大小或使用不使用首选大小的布局管理器,例如BorderLayout
FlowLayout尊重组件的首选尺寸。因此,重写getPreferredSize,为您的JPanel提供一个可见的尺寸,而不是当前在JFrame 35; pack之后面板的默认零尺寸,该尺寸称为:
class GamePanel extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g); // added to paint child components
g.drawString("asd", 5, 20);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(400, 300);
}
}
编辑:
要消除JPanel
与其包含的JFrame
之间的间隙,请将垂直间隙设置为0
:
frame.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 0));
我正在创建一个TicTacToe游戏。我把所有带有ActionListeners的后端放在按钮上,将按钮添加到面板,设置框架等等。 然而,当我运行程序时,我的JPanel似乎没有添加到JFrame中。我试过使用不同的布局,仔细检查是否确实放置了。为所有内容添加行,之前的所有帖子似乎都指向了我认为已经涵盖的内容。 如果这真的很直接,我提前道歉。 谢谢你的帮助。
我一直在努力将一个简单的东西作为值标签添加到Pandas数据框条形图中。我已经查看了20多个线程(其中这三个最有帮助-如何在matplotlib中的条形图中的列上显示文本?、matplotlib高级条形图和Python熊猫/matplotlib在条形图列上注释标签,但什么都不起作用。 我的数据一点也不复杂。数据帧结构为: 年份是数据帧的索引。 我正在寻找的表示很简单。所有产品的堆叠条形图,只有“总
我创建了一个JPanel,上面有我需要的所有JRadioButtons(称为PortSettings)。我还有一个按钮,叫做端口设置,当用户单击该按钮时,我需要JPanel上来显示单选按钮。我尝试将JPanel添加到actionlistener中,但没有效果。我的代码在下面。除了portsettings按钮之外,我已经从其他按钮中删除了所有其他ActionListener。如果这个问题让人困惑,我
问题内容: 将包含图形的添加到时,效果很好。但是,当我尝试添加 其中添加了其他图形的时,它不会显示在中。请参见下面的代码 问题答案: 请注意类的构造函数,使其成为您的习惯,以遵循本示例中所示的顺序。首先向中添加组件,然后再进行调用,例如 ,而不是在此之前。 始终把它当作习惯,每当您覆盖方法时,也要覆盖方法。 并始终像在EDT- 事件调度线程中那样发出呼叫。请阅读Swing中的Concurrency
我是java swing的新手,现在我使用NetBeant使用NetBeans中内置的拖放设计器构建GUI。我现在面临的问题是,我有下面发布的代码,它是在Eclipse中编写的,正如您所看到的,我有一个扩展JPanel的类,我将从WEB_CAM捕获的图像添加到该JPanel中。现在,自从我切换到NetBeans,我使用设计器创建了JFrame、JPanel和JButtons,在我用NetBeans
我想添加一个图像到一个JPanel中,JPanel在JInternalFrame中,JInternalFrame有一个父,JDesktopPane。 我尝试使用另一个类从路径添加图像,然后,