Skip to content

Feature Enhancement Proposal: A New Upload Component Has Been Added #399

@lxwise

Description

@lxwise

Request: Add a modern image upload component to JavaFX

At the moment, JavaFX does not provide any built-in upload component comparable to the Element UI Upload component available in frontend frameworks such as Vue.
This results in developers repeatedly implementing custom solutions for common file-upload scenarios.

Problem

JavaFX currently lacks a unified, high-level upload component with:

  • 🖼 Thumbnail preview
  • 🧱 Photo-wall layout
  • 📂 Drag-and-drop upload
  • 📤 Upload progress display
  • ❌ File type / file size validation
  • 📱 Better UX similar to modern web frameworks

These features are standard in contemporary UI frameworks, yet no such equivalent exists in native JavaFX, leading to duplicated effort and inconsistent implementations across applications.

Suggested Reference Implementation

A good example of the desired functionality is the Element UI Upload component, which provides multiple modes, a photo wall, drag-upload support, and preview:

[address](🔗 https://element.eleme.cn/#/en-US/component/upload)

Why This Component Matters

  • Greatly improves JavaFX’s competitiveness for desktop business applications
  • Eliminates repeated custom implementations by developers
  • Enhances UX for applications requiring image/file uploads
  • Simplifies development and reduces boilerplate code
  • Encourages community adoption through a modern, easy-to-use API

Expectation

Introduce a new high-level UploadView / ImageUploadView component into JavaFX (or as part of an extended controls library), supporting:

  • Thumbnail preview
  • Photo wall layout
  • Drag-and-drop upload
  • Progress bar
  • Built-in validators (file type, size, count)
  • Customizable upload handler (synchronous or asynchronous)

Metadata

Metadata

Assignees

No one assigned

    Labels

    to-evaluateTo understand if it's worth it, or More info needed, or More investigation needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions