小编Eli*_*mal的帖子

paintComponent在绘图之上绘制其他组件

我正在尝试构建一个简单的绘图工具.该mouseDrag事件创建一个新的椭圆形,并导致我JPanelrepaint().

这到目前为止工作正常.但是,如果我mouseDrag在第一次触发事件之前按下任何按钮(或任何其他UI组件),则按钮将绘制在我面板的左上角.

我已将代码隔离到此测试应用程序中:

import java.awt.BasicStroke;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Test extends JFrame
{
    public Test()
    {
        final JPanel paintPanel = new JPanel(){
            @Override
            protected void paintComponent(Graphics g)
            {
                Graphics2D g2d = (Graphics2D)g;
                g2d.setPaintMode();

                g2d.setStroke(new BasicStroke(1));
                g2d.fillRect(100, 100, 10, 10);
            }
        };

        paintPanel.setPreferredSize(new Dimension(300,300));
        paintPanel.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e)
            {
                paintPanel.repaint();
            }
        });

        this.setLayout(new …
Run Code Online (Sandbox Code Playgroud)

java swing repaint graphics2d paintcomponent

8
推荐指数
2
解决办法
4634
查看次数

经常使用r10和r11的可接受性

我最近做了很多x64汇编编程(在Linux上),用于与我的C/C++程序集成.

由于我主要关心效率,我喜欢尽可能少地使用不同的寄存器/存储器地址,以及尝试不创建任何堆栈帧或保留寄存器(每个周期计数).

根据cdecl r10和r11寄存器不保留,我希望在我的函数中使用它们作为临时变量,最好不要保留.它是否会导致任何编译器出现任何无法解决的问题/错误(到目前为止还没有遇到任何问题,但这是一个问题)?

assembly x86-64 abi cpu-registers calling-convention

6
推荐指数
2
解决办法
645
查看次数

除非我提取文件,为什么我的Jar不会运行?

每次我运行导出的.jar文件时,包含一个JFrame图像作为其图标,该文件不会运行,除非我提取文件.在编译器中它正在运行.我不想制作一个将资源包和jar文件保存在目录中的启动器.

java swing export jar image

0
推荐指数
1
解决办法
255
查看次数