我无法在图形顶部显示按钮

时间:2017-08-06 12:33:16

标签: java swing graphics

我的问题是如何在用Graphics创建的圆圈顶部显示按钮。我的代码是:

kwargs = {} 
for k,v in self.request.query_params.items():
    if not validate_that_key_is_an_actual_model_field(k):
        return Response(status=status.HTTP_400_BAD_REQUEST)
    kwargs[k] = v
return Product.objects.filter(fk_client=self.client)\
    .filter(**kwargs)\
    .order_by('uuid')\
    .select_related('fk_user')

此代码是我项目的一小部分。我的项目中有很多面板,我的火法首先没有被调用。我的意思是第六个小组调用了火法。我必须用按钮绘制两个圆圈。这些按钮应位于两个圆圈之间。但我不能直接显示按钮。当我将鼠标悬停在按钮上时,它们显示出来。我想在第六个面板打开时立即显示按钮。 我上面有两个按钮。单击第一个按钮时,应打开另一个面板并显示圆圈(使用图形创建)和另一个按钮(带图标)。

1 个答案:

答案 0 :(得分:1)

    JPanel panel = new JPanel(){
        @Override
        public void paint(Graphics g)
        {

不要覆盖paint()。通过覆盖paintComponent()来完成自定义绘制,并且不要忘记调用super.paintComponent()作为第一个语句。

您当前代码的问题在于,通过覆盖绘制,您更改了面板的默认绘制逻辑,并且从不绘制子组件。

请查看Custom Painting上Swing教程中的部分,了解更多信息和示例,尤其是关于A Closer Look at the Paint Mechanism的部分。