Eclipse Window Builder JFrame Issue - java

I've been having a problem with viewing my JFrames recently. I was able to view them just fine in the Design panel of Window Builder not too long ago, and now all that I see is just the JFrame options to minimize, maximize, or close the screen. Everything else around it is white. I am using a card layout on Juno Eclipse.
However, when I run the program, the small JFrame options to minimize, maximize, or exit appear. I am able to maximize my program and run it. The problem is that I can't seem to see where my labels or buttons are in design mode. Instead I just see white, which makes it difficult to do any editing.
This would be a lot easier if I was able to post pictures.

The problem you describe happens when you change the auto-generated code too much by hand. For example, adding too many method calls, or especially changing constructors, etc causes it to lose its ability to render the preview. This is one of the reasons I avoid using WindowBuilder as much as possible, because this is a known bug and as far as I know there is not a fix. I'm sorry for being the bearer of bad news, but unless you can find the added code that caused it to complain, and manipulate it a bit, you may be out of luck. The trick to getting WindowBuilder to work for you is to keep as close to the structure of the auto-generated code as possible.

Related

Problem with JFace Application in design mode

I installed Eclipse IDE for Enterprise Java Developers 2020-09 with WindowBuilder 1.9.4. Then I tried to create a test application: SWT/JFace Java Project with a JFace ApplicationWindow.
My problem is that I cannot drop anything on the window directly in design mode. It is possible to add widgets to the main container in the components tree. But they seem to be hidden behind the parent shell (I could see this from setting a background color for it and when I add them I can see their bounds, but then no longer). It is not possible to resize the application window in design mode either.
However, when I do "Test/Preview...", the widgets are there. And also when I run the program, as they should as they are in the code. In the latter case also the resizing works (not with "Test/Preview..."). The resizing seems to work at first, but then it snaps back to a minimal size where only the menu and toolbar fit in the window,
This is so with any such project. I first tried to import a program I had written in an older version of Eclipse. There I have tabs in a composite in the container. They seem to be hidden, too (and misplaced, also behind the toolbar). But when I run the program, everything is fine. I first thought I might have messed something up in the program, so parsing gets sidetracked. But that cannot be it as the problem already arises in the simple test program where I have just one widget and the default code.
I have tried quite a few things to get around this, eg. reinstalled the IDE, installed an older version, installed an older version of WindowsBuilder in case this is a bug in either. But to no avail. Has anyone experienced the same problem? Seems like there is a simple mistake on my part. Something I would have to change in the settings or maybe the program?
But I have no idea where to look. Could it have to do with the JRE (OpenJDK15U-jdk_x64_windows_hotspot_15_36)? Had to take that as the download from Oracle does not work for some reason. There is a warning that it is not exactly compatible. But then the program works fine, so it cannot be at such a basic level? Any ideas very much appreciated as I am totally stuck at this point.
There is no problem with designing eg. a JFace dialog. Everything works as expected, I can drop widgets, resize, etc.
Here is how it looks:
Brute force "workaround": I go back to Oxygen where things are working fine. But somewhat of a defeat because I am stuck with an old version, which is a deadend. IIRC already going to Photon posed insurmountable problems for me (certainly my fault as I am not that good at the nitty-gritty). Would still be very interested in an answer to my question. Urgency is now lower as I can at least keep working on my program and let my frustration die down after two days of futile attempts.
[Edit: I only tried the resizing in Oxygen 32-bit, that worked, but did not check whether the problem with dropping a widget on the application window was also there. Then I tried to get the 64-bit version to run, which I could not do. There is apparently a problem with Java > 8. Installation of Photon worked finally. However, while resizing is okay there, I get the same problem with dropping widgets and that they appear to be misplaced (upper left corner of the area seems to be behind the toolbar. The "workaround" unfortunately went nowhere. So I am again more interested in an answer than I thought.]
[Edit 2 as per Oct 12: Since I could not solve this problem, I decided to redo the GUI with a SWT Application window. That lacks some of the functionality of a JFace Application window (I especially miss the ease of Actions). So it seems like a step backwards, and it caused some extra effort. But then the upside is that I had to rethink a few things about the structure anyway, which means I was forced to do that sooner than later. But still would like to get also JFace Application windows to run. Pressure is no longer there, but out of interest what went wrong.]

How can I disable automatic background clearing in a Java graphical application?

I am a Java developer with some expertise in graphical programming but not very skilled with the most recent techniques.
I am developing a Java graphical application using Apache Netbeans IDE 11.2; the application includes many structured panels (split panels, tab controls) and executes 2D drawings on some of them, using Swing and AWT.
The application worked well until now. After the last modifications, I am facing the following problem:
The application properly performs all drawings (polylines, rectangles and so on) on the main panel, but abruptly the panel is cleared and the original background restored, deleting all drawings.
The debugging shows that the clearing is not performed by any statement of the program. So I suppose that it is managed behind the scenes by AWT or something like this.
I understood that Swing automatically implements double buffering (anyway I also inserted a setDoubleBuffered statement), so I made the drawings directly on the screen without using a buffer. On the other hand, this had worked perfectly until now.
My questions are:
How can I detect the event that causes the causes the restore of the background? And how can I prevent this restore?
A solution could be to disable Swing Double Buffering and code it explicitly. I am not sure of this. Any hint?
Thank you very much for any suggestion.

JavaFX system MenuBar disappears when the window is being minimized on Mac

I'd like to create a JavaFX application with MenuBar and I want my application to look more native-like, so I set useSystemMenuBarProperty to true. The application looks normal, like this (just ignore IntelliJ IDEA at background):
This is cool, and it works as it should. But when I minimize my application to the dock, the menubar starts to look like this:
As you can see, all buttons were disappeared, which is kinda strange.
The question is: How can I fix this? What do I have to do to make it look normal? Thanks.
This is indeed a strange problem which I actually haven't noticed before and I have no idea how to fix this. You should probably report this as a bug. At least the vanished part of the menu reappears when the window is made visible again, so this does not seem to be too serious, although it differes from the normal behaviour.
If you want to make your application even more native-like you should also have a look at https://github.com/codecentric/NSMenuFX which provides some additional features which are not present in JavaFX alone.

Is there a way to embed TightVNC Java Viewer without all those buttons?

I am playing with the TightVNC viewer for Java and can't find the way to embed the VNC screen (Viewer) into my JFrame window. I do not want a separate window. In fact I do not want any of those (useful, but sometimes not required) buttons.
Simply put, I want to have a JFrame with VNC viewer taking the whole window, and all other stuff from the TightVNC viewer hidden.
Any ideas how to achieve this will be greatly appreciated.
TigerVNC and TightVNC are almost the same (1st depends on the 2nd), but TigerVNC is organized a bit different. Because I don't think it would add up explaining everything for TightVNC in detail I'd suggest using TigerVNC instead, if it is possible license-wise ... maybe your problem doesn't exist there. The steps are the same (trace through the code or something... to find the places where the viewport is assembled) for all Java GUI applications, just the classes have other names.

Would it be appropriate to use JDesktopPane and JInternalFrame in this instance?

I'm writing a program that currently switches back and forth between different JPanels placed on a JFrame that also has a JMenuBar. (We're required to use Swing.)
I need to write a tutorial and right now I have it giving step-by-step instructions from a popup window. However, it doesn't seem to resonate well with test users and quite frankly it's annoying to switch back and forth between screens.
After checking out JDesktopPane and JInternalFrame it seems to make sense to place my entire program in a desktop pane and then create the tutorial using an internal frame. I'm worried that this will force me to place my different screens each in an internal frame which is NOT what I want to do. I just want the tutorial to be an internal popup(?) that can be minimized and moved around if necessary.
Am I going about this the correct way or is there a more efficient/practical way to implement the same tutorial popup feature?
I'm not 100% clear on your problem -- is it that your tutorial keeps popping up new windows for each step? I would assume that you wish both the main program and the tutorial to both be in view while the tutorial is running, and if this is so, perhaps the tutorial should reside in a non-modal JDialog, and then you swap tutorial screens via a CardLayout. ... unless I'm mis-reading your requirements and problem.

Categories