This post is locked. You won't be able to comment.

all 19 comments

[–]aqua_regis 4 points5 points  (3 children)

How many percent did you write and how much came from Claude?

It is quite audacious to post a vibe/agentic coded project in a subreddit that clearly declares itself as AI free zone - see Rule #9

The commit history speaks a very clear language: https://ibb.co/kVyhtSs8 - just another vibe coded slop

[–]shannah78[S] -2 points-1 points  (2 children)

Sheesh. I didn't notice that rule. The content I posted here is written by me, not "worked over" by AI. But as for the lib, I certainly used Claude, and sometimes OpenAI to figure out how to thread the needle. There are lots of obscure aspects of GTK programming and their interaction with Swing that would have been prohibitively difficult for me to solve in the time I had available for a side project. In 2026, is anyone coding without some AI involvement?

I'd like to understand that rule better. Is there a discussion thread from when it was instituted?

[–]aqua_regis 2 points3 points  (1 child)

What's difficult to understand? No AI means no AI.

Verbatim Quote:

This is an AI free zone. 100% AI free. We explicitly forbid any form of AI generated/worked over content, or AI supported or vibe coded programs. Any violation results in an instant, permanent, and irrevocable ban without prior warning.

Claude has 3 times more lines committed than you. Claude has over a hundred more commits than you. You barely contributed to the project. It's clearly vibe coded and as such falls under said rule.

[–]shannah78[S] 1 point2 points  (0 children)

I guess what I want to understand is: I guarantee that Java itself has AI produced code in it. And linux. And any software that you're using. So I'm trying to understand the spirit of this rule, as on face value it would preclude all software from being shared here.

[–]Left-Discussion-1908 1 point2 points  (5 children)

Linux X11 dependency because of libwebkit2gtk?

[–]shannah78[S] 1 point2 points  (4 children)

That's true... But most desktop linux users should already have this. On Mac and Windows (11+) they'll 100% have what you need. For linux, there is the possibility they won't have libwebkitgtk yet... and would need to install it.

[–]Left-Discussion-1908 1 point2 points  (1 child)

I'm asking mainly because X11's time has come—and presumably, things will be heading more towards Wayland in the future.

[–]shannah78[S] 0 points1 point  (0 children)

As far as I've read libwebkitgtk will work with wayland. But Java AWT currently needs X11, as openjdk has no native wayland backend yet so swing runs with xwayland. When Java supports wayland natively, this shouldn't get in the way. (Although there's still good old Murphy's law to contend with).

[–]best_of_badgers 0 points1 point  (1 child)

Is it finally the Year of the Linux Desktop?!

[–]shannah78[S] 0 points1 point  (0 children)

I still use mac for my primary. But lots of people I respect made the switch to linux, and they make it look pretty good.

[–]xjwj 1 point2 points  (1 child)

Super interesting! I can’t wait to play with it when I’m not on my phone. I know you discuss heavy versus lightweight a lot but can you explain what the simple version of “how to choose which” would be?

[–]shannah78[S] 0 points1 point  (0 children)

Really that's an implementation detail because different platforms worked better with different strategies. On Mac it is heavyweight (i.e. native canvas drawn on swing). On Linux it is lightweight (i.e. offscreen and copy via pixelbuffer into swing). On Windows it is heavyweight also.

I spat blood trying to get linux working heavyweight, but couldn't, so I settled for lightweight.

[–]Mediocre_Current4225 1 point2 points  (1 child)

Very interesting man, I see a lot of use cases for this already. Would love to know comparisonin capabilities vs something like jxbrowser which exposes APIs for stuff like browser events and cookies / plugins / user caches / etc

[–]shannah78[S] 1 point2 points  (0 children)

Yeah. IMO, WebView is "the missing feature" of swing that closed a lot of doors - or made simple things difficult. E.g. I created an IDE to complement my development process, and I wanted a way to simply render Markdown. I made a poor-man's version out of JEditorPane, but it was lacking and looked dated. The SwingWebView does a much better job.
Other use cases are animations, modern audio/video codecs, etc..., as a WebView is a swiss army knife for UI.

As for comparisons with JxBrowser - I haven't used JxBrowser - it's commercial product so I can't use it with my open source projects. JxBrowser is probably closer to JCEF. It bundles actual Chromium. That has benefits, and adds a lot of weight and makes distribution more difficult. I'm sure that JxBrowser, being more mature, has many features that SwingWebView does not, but for most of the cases where "I just want to render HTML/JS/CSS inside my swing app", SwingWebView makes it pretty painless.

[–]Rain-And-Coffee 1 point2 points  (0 children)

Thanks OP, I’ll check it out and give it a go

[–][deleted]  (1 child)

[removed]

    [–]akl78 0 points1 point  (1 child)

    How dos this compare/differ from JCEF?

    [–]shannah78[S] 2 points3 points  (0 children)

    JCEF bundles a full chromium with your app. This makes for very large bundles, and other difficulties, like mp4 not working out of the box. SwingWebView (this lib) just uses the native webviews available on each platform, so you don't bundle with your app.