相关疑难解决方法(0)

paintComponent()与paint()和JPanel vs Canvas在画笔类型的GUI中

我从这里得到了一些有趣的想法和批评,这篇这篇文章(参见上一篇关于GUI代码的帖子).尽管如此,我仍然对某些事情感到困惑.主要是,显示用户引入图形的最便宜的方式是什么?

更具体而言,我使用了paintComponent()从方法JPanel通过使这个类的一个对象中的类MouseDragged()与方法一起paintComponent(getGraphics())方法(AuxClass2AuxClass1相应地).

显然,使用getGraphics()paintComponent()不是repaint()坏主意,我怀疑与内存使用有关.AuxClass2每次用户拖动鼠标时调用也是一个坏主意.

JPanel vs Canvas(即swing vs awt)也有点令人困惑.使用什么以及何时使用?

我一直试图找到一个解决方法,但没有找到一个,特别是对于getGraphics()方法:如何将图形添加到面板?

java user-interface swing awt jpanel

15
推荐指数
3
解决办法
3万
查看次数

JPanel上的MouseEvent - 错误的坐标

我用Java编写了以下微绘画程序:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;


class AuxClass1 extends JFrame implements MouseListener, MouseMotionListener{

    private JPanel panel1 = new JPanel();
    private JPanel panel2 = new JPanel();
    private JLabel label1_x = new JLabel();
    private JLabel label1_y = new JLabel();
    private JLabel label1_x_info = new JLabel("");
    private JLabel label1_y_info = new JLabel("");
    //add a container keep panels with widgets 
    private Container con1 …
Run Code Online (Sandbox Code Playgroud)

java swing awt jpanel mouseevent

4
推荐指数
1
解决办法
2306
查看次数

标签 统计

awt ×2

java ×2

jpanel ×2

swing ×2

mouseevent ×1

user-interface ×1