Can I somehow put JFrame into Intellij Idea's sidebar?

I have a project that uses JFrame as GUI and I need to integrate it into IntelliJ Idea as plugin. So I thought that maybe I can put a JFrame into sidebar.

Is it possible? Or is there another option?

0
8 comments
Avatar
Permanently deleted user

I think u just need a toolwindow.

Just add some code to plugin.xml.

<extensions defaultExtensionNs="com.intellij">
<toolWindow id="web browser tool window" anchor="left"
factoryClass="com.***.webbrowser.WebBrowserToolWindowFactory"/>
</extensions>
Then implements it like this:
public class WebBrowserToolWindowFactory implements ToolWindowFactory {
@Override
public void createToolWindowContent(@NotNull Project project, @NotNull ToolWindow toolWindow) {
System.out.println("createToolWindowContent");
ContentManager contentManager = toolWindow.getContentManager();
Content content = contentManager.getFactory().createContent(new WebBrowserToolWindowPanel(true, true), null, false);
contentManager.addContent(content);
}
}
0
Avatar
Permanently deleted user

My IDEA don't know class WebBrowserToolWindowPanel. Do I need to import some library?

 
0
Avatar
Permanently deleted user

U can do like this.

@Override
public void createToolWindowContent(@NotNull Project project, @NotNull ToolWindow toolWindow) {
System.out.println("createToolWindowContent");
ContentManager contentManager = toolWindow.getContentManager();
SimpleToolWindowPanel simpleToolWindowPanel=new SimpleToolWindowPanel(true,true);
simpleToolWindowPanel.add(new JFrame());
Content content = contentManager.getFactory().createContent(simpleToolWindowPanel, null, false);
contentManager.addContent(content);
}
0
Avatar
Permanently deleted user

It throws error "adding a window to a container"

0
Avatar
Permanently deleted user

Show more info.My plugin work well.

0
Avatar
Permanently deleted user

This is error what I getwhen I run it

adding a window to a container
java.lang.IllegalArgumentException: adding a window to a container
at java.awt.Container.checkNotAWindow(Container.java:492)
at java.awt.Container.addImpl(Container.java:1093)
at java.awt.Container.add(Container.java:419)
at MyToolWindowFactory.createToolWindowContent(MyToolWindowFactory.java:56)
at com.intellij.openapi.wm.impl.ToolWindowImpl.ensureContentInitialized(ToolWindowImpl.java:568)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.lambda$initToolWindow$4(ToolWindowManagerImpl.java:460)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.initToolWindow(ToolWindowManagerImpl.java:463)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl$4.run(ToolWindowManagerImpl.java:420)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:92)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:72)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:993)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:92)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:72)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:993)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:92)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:72)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:993)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:92)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:72)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:993)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:92)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:72)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:993)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:92)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:72)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:993)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:92)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:72)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:993)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:92)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:72)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:993)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:92)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:72)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:993)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:92)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:72)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:993)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:92)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:72)
at com.intellij.openapi.wm.impl.CommandProcessor.flush(CommandProcessor.java:46)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.flushCommands(ToolWindowManagerImpl.java:541)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.access$3700(ToolWindowManagerImpl.java:90)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl$InitToolWindowsActivity.lambda$runActivity$0(ToolWindowManagerImpl.java:2474)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:843)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:679)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:391)
at com.intellij.ide.IdeEventQueue.pumpEventsForHierarchy(IdeEventQueue.java:930)
at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:207)
at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:194)
at com.intellij.openapi.application.impl.ApplicationImpl.runProcessWithProgressSynchronously(ApplicationImpl.java:586)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:435)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcessWithProgressSynchronously(ProgressManagerImpl.java:76)
at com.intellij.openapi.progress.impl.CoreProgressManager$8.run(CoreProgressManager.java:338)
at com.intellij.openapi.progress.impl.CoreProgressManager.runSynchronously(CoreProgressManager.java:342)
at com.intellij.openapi.progress.impl.CoreProgressManager.run(CoreProgressManager.java:321)
at com.intellij.openapi.progress.ProgressManager.run(ProgressManager.java:197)
at com.intellij.openapi.project.impl.ProjectManagerImpl.loadAndOpenProject(ProjectManagerImpl.java:403)
at com.intellij.ide.impl.ProjectUtil.openProject(ProjectUtil.java:189)
at com.intellij.ide.RecentProjectsManagerImpl.doOpenProject(RecentProjectsManagerImpl.java:60)
at com.intellij.ide.RecentProjectsManagerBase.doReopenLastProject(RecentProjectsManagerBase.java:613)
at com.intellij.ide.RecentProjectsManagerBase$MyAppLifecycleListener.appStarting(RecentProjectsManagerBase.java:647)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:117)
at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:381)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:368)
at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:347)
at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:42)
at com.intellij.util.messages.impl.MessageBusImpl$2.invoke(MessageBusImpl.java:230)
at com.sun.proxy.$Proxy41.appStarting(Unknown Source)
at com.intellij.idea.IdeaApplication$IdeStarter.lambda$main$1(IdeaApplication.java:340)
at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:91)
at com.intellij.openapi.application.TransactionGuardImpl.access$300(TransactionGuardImpl.java:41)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:116)
at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:126)
at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:122)
at com.intellij.idea.IdeaApplication$IdeStarter.main(IdeaApplication.java:338)
at com.intellij.idea.IdeaApplication.lambda$run$0(IdeaApplication.java:193)
at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:204)
at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:193)
at com.intellij.idea.MainImpl$1.lambda$null$0(MainImpl.java:47)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:363)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

0
Avatar
Permanently deleted user

https://github.com/lingfengsan/Web-Browser

Maybe this can solve your problem

0
Avatar
Permanently deleted user

I've noticed that he is also using JPanel instead of JFrame so probably I need to refactor my code from JFrame to JPanel and it should work. Thanks a lot. 

0

Please sign in to leave a comment.