Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将现有功能附加到面板_Java_Swing_Jpanel_Paint - Fatal编程技术网

Java 将现有功能附加到面板

Java 将现有功能附加到面板,java,swing,jpanel,paint,Java,Swing,Jpanel,Paint,大家早上好。 我正在使用Netbeans IDE,我在我的jFrame中创建了一个Jpanel1,只需拖放即可,但我不想在这个Jpanel1上附加一个新函数,该函数将覆盖其绘制方法。 因为如果我用 jPanel Jpanel1 = new jPanel(){ } 我可以重写paint方法,但使用拖放方式我不知道该怎么做 谢谢如果您使用netbeans ide制作jFrame使用拖放它会自动在以下位置生成源代码: private void initComponents(

大家早上好。 我正在使用Netbeans IDE,我在我的
jFrame
中创建了一个
Jpanel1
,只需拖放即可,但我不想在这个
Jpanel1
上附加一个新函数,该函数将覆盖其绘制方法。 因为如果我用

      jPanel Jpanel1 = new jPanel(){

      }
我可以重写paint方法,但使用拖放方式我不知道该怎么做


谢谢

如果您使用
netbeans ide
制作
jFrame
使用
拖放
它会自动在以下位置生成源代码:

private void initComponents() {
     //auto generates code here
}
只需右键单击
Design
选项卡下的
jPanel
并进入
properties
菜单,即可满足您的需求

有关更多详细信息,请参阅

阅读您对问题的评论后更新:

  • 要更改背景颜色,请执行以下操作:

    进入,属性->在背景上单击右侧并根据需要更改颜色

  • 要添加边框,请执行以下操作:

    只需转到
    border

  • 定尺寸

    同样,您可以更改
    preferredSize

  • 添加事件

    进入属性的
    Events
    选项卡,并根据需要进行更改

  • 要使用诸如
    textField
    progressBar
    等组件,您可以从调色板拖放,该调色板主要位于
    jFrame设计
    选项卡的右侧


首先,您需要使用
public
修饰符创建一个扩展
JPanel
自定义面板
类,并为其指定自定义名称。然后覆盖
paintComponent(Graphics)
函数,使用
Graphics g
将自定义绘制代码放入该函数中。例如:

    public class CustomPanel extends JPanel{

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
       // custom painting code
    }
}
现在,在NetBeans中:

  • 直接将类拖到GUI窗体中并将其放下。就像你从托盘上拖动一个面板一样
  • 或者,在NetBeans中选择
    CustomPanel.java
    class选项卡时,转到

    Tools-> Click Add To Pallete -> Select Swing Containers -> click Ok
    
    然后,您应该能够从左侧表单导航面板将其添加到表单中,如下图所示:


  • 即使使用拖放操作,代码仍然在后台生成。找到该代码并根据需要进行更改;setBackground(新java.awt.Color(255、255、255));setboorder(javax.swing.BorderFactory.createBevelOrder(0));setPreferredSize(新的java.awt.Dimension(600700));addMouseListener(新java.awt.event.MouseAdapter(){public void mousePressed(java.awt.event.MouseEvent evt){jpanelmousepressed(evt);}});addMouseMotionListener(新增,我无法修改代码的这一部分,但我找不到像paint或onpaint这样的平衡或适当方式来重新定义此函数,但覆盖paint(jGraphics g)如何方法??对于我在“事件”选项卡中知道的其他事件,但没有绘制…@RiadSaadi我仍然无法得到您的问题。如果您想使用
    mousePressed
    事件。右键单击组件并转到
    events
    ->
    mousePressed
    ,然后单击E
    mousePressed
    ,它将转到源代码,然后您可以添加您的代码进一步处理的逻辑。您不需要
    过度评估
    任何netbeans自动过度评估或询问的方法(如果需要)。@RiadSaadi,您还没有解释您已撤销接受我的回答。这与接受无关,但当您撤销时,您至少应该提到原因。对不起,我将在这一天向clair道歉ime,我知道如何像你对我说的那样添加事件,添加事件是对抽象MouseEvent的重写,但是如果我想重写方法paint、NoMouseClicked或mousedown或其他,我想在paint方法中编写代码,就像我对mouseclicked事件所做的那样