带图像编辑器的JDialog

时间:2014-04-04 18:25:49

标签: java swing graphics graphics2d jdialog

我需要在JDialog中加入一个ImageEditor。它必须在

上执行
int k = JOptionPane.showOptionDialog(null, p,  t, JOptionPane.YES_NO_OPTION, 
                JOptionPane.PLAIN_MESSAGE, null, new Object[]{ok, cancel}, ok);

创建小组:

case TEXEDIT:
            panel = new IPanel();
            p.setPreferredSize(new Dimension(800, 480));
            panel.setPreferredSize(new Dimension(780, 440));
            break;

其班级:

static class IPanel extends JPanel {
    BufferedImage image;

    public IPanel() {
        super();
        try {
            image = ImageIO.read(new File("res/shipRubeoAles.png"));
        } catch (IOException e) {
            e.printStackTrace();
        }       
    }

    float scale = 2.0f;
    public void paintComponent(Graphics g) {
        Graphics2D g2 = (Graphics2D)g; 
        int w = getWidth();  
        int h = getHeight();  
        int imageWidth = image.getWidth();  
        int imageHeight = image.getHeight();  
        double x = (w - scale * imageWidth)/2;  
        double y = (h - scale * imageHeight)/2;
        AffineTransform at = AffineTransform.getTranslateInstance(x,y);  
        at.scale(scale, scale);  
        g2.drawRenderedImage(image, at);    
    }

}

它应该是一个“图像选择器(裁剪器)”,我想在那里定义该对象的绘图矩形(在spritesheet上)。

我想在图像编辑器打开时停止所有其他应用程序活动。 但是出现了一些问题,我不想停止听鼠标,键盘事件或重新绘制我的面板(它明确地停止,因为我的面板根本没有重新绘制,它甚至没有第一次绘制图像,所以面板在JDialog里面是完全空白的,那么如何做到这一点JDialog会听这些事件?

0 个答案:

没有答案