131

Background

I am somewhat new to Java and am enjoying using IntelliJ IDE developed by the JetBrains team.

I have downloaded the source for the Community Edition, and I am trying to work out what GUI libraries they are using to get the look-and-feel.

Question

What libraries (if any) are they using to get the non-native tabs, toolbars and breadcrumb component?

The panels they are using are also interesting, however I get the feeling they were developed for the project and are not a library. Is this true?

Can someone provide a breakdown of what is needed to produce a similar look-and-feel in a GUI project?

Does anyone have tutorials for that? All I have been able to work out so far is that they are using Swing and jGoodies.

What I Think So Far

They are using Swing and jGoodies. The MyDoggy project is attempting to produce a similar docking framework, however I don't think this is used by IntelliJ.

medavox
  • 175
  • 2
  • 11
Levi Putna
  • 2,863
  • 6
  • 30
  • 47

1 Answers1

176

IntelliJ IDEA is a pure Java Swing application. All the custom components like editor tabs are created manually, no third-party libraries are used for this. You can find all the details by looking at the IntelliJ IDEA Community Source code.

Lii
  • 11,553
  • 8
  • 64
  • 88
CrazyCoder
  • 389,263
  • 172
  • 990
  • 904
  • 2
    Why would they not use JavaFX-8 for it? – Witold Kaczurba Jul 03 '17 at 08:16
  • 35
    @Vito maybe because IntelliJ IDEA was created back in 2000 when JavaFX didn't exist and now it's not feasible rewriting millions of lines of code and redesigning thousands of dialogs and UI elements for the doubtable benefits? – CrazyCoder Jul 03 '17 at 08:18
  • 35
    Really impressive what you've built with Java Swing. So many people speak ill of it but you've given the world a tremendous example that proves Java Swing is a very viable tool for building desktop apps. – Zack Macomber Aug 05 '19 at 14:08
  • 1
    @CrazyCoder Still are you using swing and Java for Idea projects? (A doubt in 2020) – majurageerthan Jan 22 '20 at 07:00
  • 4
    @majuran yes, if you don't believe my word, the source code is open and linked in the answer. – CrazyCoder Jan 22 '20 at 07:01
  • Yeah yeah I saw it, But still i am a junior kid, I am unable to understand it sir. That's why i asked – majurageerthan Jan 22 '20 at 07:02
  • @WitoldKaczurba, It would slow the interface to a crawl. – J. M. Becker Apr 07 '20 at 03:38
  • 6
    I once tried to convert a swing application to FX, and found FX was in many ways more poorly designed than Swing. Unless you need the specific features that FX has, which as I recall were animation and special effects, Swing seemed like a better library to use. Of course, in 2020 both look a lot like abandonwear, and maybe Swing is actually less abandoned and more used, and so is a better option. My 2 cents. – xpusostomos Dec 08 '20 at 23:06
  • 2
    JetBrains IDEs are a lot snappier than Visual Studio on both Windows and Mac. While it doesn't have a native appearance on either platform, it's at least not glitchy, laggy nor ugly like so many cross platform applications. I hope JetBrains adopts Avalonia and assists its developers in turning it into a first class UI cross platform framework. – ATL_DEV May 02 '21 at 02:04
  • 2
    If you use Swing in the right way it is still powerful. The only other real option is to use OpenGL for java. JavaFX is no option at all. – Brain Aug 09 '21 at 11:44
  • 1
    @Brain You are seriously in err. JavaFX is 1000 times more powerful; faster; more expressive and infinitely better designed than Swing (though I grew up on Swing, and love it as well). – cogmission Nov 28 '21 at 02:47
  • @CrazyCoder If you were to develop IntelliJ Idea today in 2023, would you have preferred Java Swing or Java FX. Also, I have heard from many sources that Java FX is poorly designed. How much of that is true? Please suggest. – Debjit Apr 22 '23 at 22:41