【问题标题】:Panel for drag and drop image file, with java swing用于拖放图像文件的面板,带有 java swing
【发布时间】:2013-02-28 05:36:17
【问题描述】:

我正在尝试制作一个 java swing 面板,您可以在其中拖放图像。并保存面板上显示的图像。 我找到了this,我认为这对我很有帮助。 但在我的装有 windows 7 的电脑上不起作用。我无法将图像拖到应用程序中。我会很感激任何建议。谢谢

【问题讨论】:

    标签: java image swing drag-and-drop


    【解决方案1】:

    规则一,不懂的东西不要乱搞;)

    规则二,假装它直到你成功;)

    initComponents 方法替换为...

    private void initComponents() {
    
        listScroller = new javax.swing.JScrollPane();
    
        imageList = new JList();
        imageList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        imageList.setLayoutOrientation(javax.swing.JList.HORIZONTAL_WRAP);
        imageList.setVisibleRowCount(-1);
        listScroller.setViewportView(imageList);
    
        setLayout(new BorderLayout());
        add(listScroller);
    }// </editor-fold>//GEN-END:initComponents
    

    GlassPaneDragAndDrop构造函数中,将“drop pane”的paintComponent方法替换为...

    setContentPane(new JPanel(new BorderLayout()) {
        private BufferedImage image = null;
    
        @Override
        public boolean isOpaque() {
            return imageList.getModel().getSize() > 0;
        }
    
        @Override
        protected void paintComponent(Graphics g) {
            Rectangle clip = g.getClipBounds();
    
            g.setColor(Color.WHITE);
            g.fillRect(clip.x, clip.y, clip.width, clip.height);
        }
    });
    

    这将允许它运行。但在 Windows 7 下,您可能不喜欢这样的结果....

    【讨论】:

    • 谢谢,并为我的愚蠢感到抱歉,但我无法接受这些变化。
    • 你“不能接受这些变化”是什么意思?
    • 对我来说很好。什么不起作用?请记住,它只接受以“.png”和“.jpg”结尾的文件(区分大小写)
    猜你喜欢
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 2013-07-19
    • 2013-02-12
    • 1970-01-01
    相关资源
    最近更新 更多