Pass Swing components as parameters using RMI

My question is this. Suppose I have a server and a server configuration tool in the same LAN. Suppose I have JPanels assigned to each component of the server as configuration panes. Can I pass the JPanel to the configuration tool from the server depending upon the component selected to be configured.
Simply the question is can I pass a swing component (provided all the components inside this Swing components will be Serializable) as a parameter to another machine using RMI.
Some people say this is not possible because Swing components are not serializable but when I looked in the javadocs most of the Swing components are serializable.
eg. JPanel, JButton, etc.

Hi
I tnxk is possible, because the only condition is the params must be serializable.
If you look at JPanel code you can see :
* JPanel is a generic lightweight container.
* <p>
* <strong>Warning:</strong>
* Serialized objects of this class will not be compatible with
* future Swing releases. The current serialization support is appropriate
* for short term storage or RMI between applications running the same
* version of Swing. A future release of Swing will provide support for
* long term persistence.

Similar Messages

  • Jre 15.0_22/Linux - Swing components error when using GTKLookAndFeel

    Hello,
    I'm not sure if it's a JRE bug or what, but on Linux platforms our applet fails when using swing components using the GTKLookAndFeel.
    To demonstrate/test, I have the ff test applet:
    import java.applet.Applet;
    import javax.swing.UIManager;
    import javax.swing.UnsupportedLookAndFeelException;
    public class TestApplet extends Applet {
      @Override
      public void init() {
        super.init();
        test();
      public static void main(String[] args) {
        (new TestApplet()).test();
      public void test() {
        try {
          String className = UIManager.getSystemLookAndFeelClassName();
          System.out.println(className);
          javax.swing.LookAndFeel laf = (javax.swing.LookAndFeel) this.getClass().forName(className).newInstance();
          UIManager.setLookAndFeel(laf);
          System.out.println("setting classloader");
          UIManager.put("ClassLoader", this.getClass().getClassLoader());
          UIManager.getLookAndFeelDefaults().put("ClassLoader", this.getClass().getClassLoader());
        } catch (ClassNotFoundException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        } catch (InstantiationException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        } catch (IllegalAccessException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        } catch (UnsupportedLookAndFeelException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        System.out.println(UIManager.getLookAndFeelDefaults().getUIClass("javax.swing.JTextField"));
        UIManager.getLookAndFeelDefaults().getUI(new javax.swing.JTextField());
    }The system look and feel here is GTKLookAndFeel. The problem is that the getUI() call in the last line is returning null and I can see in the console:
    UIDefaults.getUI() failed: no ComponentUI class for: javax.swing.JTextField
    java.lang.Error
    .. etc.
    This is happening for different swing classes, I just used JTextField here as a simple test case.
    This only happens if the applet is run from the browser (via the java plugin). If I run the above code from the command line, there is no error raised, and the actual component UI class is a Synth class.
    This is only happening for us in Java 1.5.0_22 on Linux...on 1.5.0_15 and 1.6+ it seems to be fine. I'm using the 1.5.0_22 JDK downloaded from Sun.
    Anyone have any idea how to fix this error or any workaround? As you can see in the code above, I tried specifying the classloader (I read it in some other thread on these forums), but no luck there.
    Or is this a known problem in 1.5.0_22? Can anyone else replicate it?

    Installation howto you can find on http://www.puschitz.com
    Try use "Search" function before you create new topic. This one was discussed many times.

  • Swing components without using applets

    hi there
    can i display swing components on the browser without using applets through jsp.
    if the answer is yes.please help me by sending a sample code.thanking u.
    -radhakrishna

    A JSP is compiled into a (server-side, obviously) servlet, which responds to Http requests by constructing a String of HTML/JavaScript etc to send back to the browser which then displays it.
    A Swing component is a piece of Java. The only way for such a component to run on the client side is to use either Applets or the new Java WebStart technology (see the JDC), which allows you to run a Java App locally from a Web Browser.
    You cannot possible use JSP to view Swing Components, without also using either of the above.

  • Swing components and Mac OS/9

    Hi all,
    I 've developped an app using swing components (Simple app using a hsqlbd database) and i read that it was kind of possible to port it on a mac os/9.
    I had a look on the net, on the apple site, without any luck as how to "add" swing library on the mac os/9.
    If someone could point me to the right direction (Web site, book etc), I 've been looking for a while without finding any clear and precise info on how to tackle this kind of problem.
    Thanks in advance.

    As per my knowledge, u can use JJEdit editor on MAC OS X. By using this editor, you can run the applets. Here I am using JJEdit as a java editor on MAC OS X. just dowload the JJEdit. and run the applet on it.
    regards
    nr konjeti

  • I can't use swing components in my applets

    When I write an applet without any swing components, my browser never has any trouble finding the classes it needs, whether they're classes I've written or classes that came with Java. However, when I try to use swing components it cannot find them, because it is looking in the wrong place:
    On my computer I have a directory called C:\Java, into which I installed my Java Development Kit (so Sun's classes are stored in the default location within that directory, wherever that is), and I store my classes in C:\Java\Files\[path depends on package]. My browser gives an error message along the lines of "Cannot find class JFrame at C:\Java\Files\javax\swing\JFrame.class"; it shouldn't be looking for this non-existent directory, it should find the swing components where it finds, for example, the Applet class and the Graphics class.
    Is there any way I can set the classpath on my browser? Are the swing components stored separately from other classes (I'm using the J2SE v1.3)?
    Thanks in advance.

    Without having complete information, it appears that you are running your applets using the browser's VM. Further, I assume you are using either IE or Netscape Navigator pre-v6. In that case, your browser only supports Java 1.1, and Swing was implemented in Java 1.2. You need to use the Java plug-in in order to use the Swing classes (see the Plug-in forum for more information), or else download the Swing classes from Sun and include them in your CLASSPATH.
    HTH,
    Carl Rapson

  • Need help with using graphics in swing components

    Hi. I'm new to Java and trying to learn it while also developing an application for class this semester. I've been following online tutorials for about 2 months now, though, and so I'm not sure my question counts as a "new to Java" question any more as the code is quite long.
    Here is the basic problem. I started coding the application as a basic awt Applet (starting at "Hello World") and about a month in realized that Swing components offer better buttons, panels, layouts, etc. So I converted the application, called BsfAp, to a new JApplet and started adding JPanels and JComponents with layout managers. My problem is, none of the buffered graphics run in any kind of JPanel, only the buttons do. I assume the buffered graphics are written straight to the JApplet top level container instead but I'm not entirely sure.
    So as to not inundate the forum with code, the JApplet runs online at:
    http://mason.gmu.edu/~dho2/files/sensor.html
    The source code is also online at:
    http://mason.gmu.edu/~dho2/files/BsfAp.java
    What I would like to do is this - take everything in the GUI left of the tabbed button pane and put it into a JScrollPane so that I can use a larger grid size with map display I can scroll around. The grid size I would like to use is more like 700x1000 pixels, but I only want to display about 400x400 pixels of it at a time in the JScrollPane. Then I could also move this JScrollPane around with layout manager. I think this is possible, but I don't know how to do it.
    I'm sure the code is not organized or optimized appropriately to those of you who use Java every day, but again I'm trying to learn it. ;-)
    Thanks for any help or insight you could provide in this.
    Matt

    Couple of recs:
    * Don't override paint and paint directly on the JApplet. Paint on a JPanel and override paintComponent.
    * The simplest way to display a graphic is to put an image into an ImageIcon and show this in a JLabel. This can then easily go inside of the JScrollPane.
    * You can also create a graphics JPanel that overrides the paintComponent, draw the image in that and show that inside of the JScrollPane.
    * don't call paint() directly. Call repaint if you want the graphic to repaint.
    Here's a trivial example quickly put together:
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.GradientPaint;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.Paint;
    import java.awt.RenderingHints;
    import java.awt.geom.Ellipse2D;
    import java.lang.reflect.InvocationTargetException;
    import javax.swing.JApplet;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.SwingUtilities;
    public class BsfCrap extends JApplet
        private JPanel mainPanel = new JPanel();
        private JScrollPane scrollPane;
        private JPanel graphicsPanel = new JPanel()
            @Override
            protected void paintComponent(Graphics g)
                super.paintComponent(g);
                Graphics2D g2d = (Graphics2D)g;
                RenderingHints rh = new RenderingHints(
                    RenderingHints.KEY_ANTIALIASING,
                    RenderingHints.VALUE_ANTIALIAS_ON);
                g2d.setRenderingHints(rh);
                Paint gPaint = new GradientPaint(0, 0, Color.blue,
                    40, 40, Color.magenta, true);
                g2d.setPaint(gPaint);
                g2d.fill(new Ellipse2D.Double(0, 0, 800, 800));
        public BsfCrap()
            mainPanel.setPreferredSize(new Dimension(400, 400));
            mainPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
            graphicsPanel.setPreferredSize(new Dimension(800, 800));
            graphicsPanel.setBackground(Color.white);
            scrollPane = new JScrollPane(graphicsPanel);
            scrollPane.setPreferredSize(new Dimension(300, 300));
            mainPanel.add(scrollPane);
        public JPanel getMainPanel()
            return mainPanel;
        @Override
        public void init()
            try
                SwingUtilities.invokeAndWait(new Runnable()
                    public void run()
                        setSize(new Dimension(400, 400));
                        getContentPane().add(new BsfCrap().getMainPanel());
            catch (InterruptedException e)
                e.printStackTrace();
            catch (InvocationTargetException e)
                e.printStackTrace();
    }

  • Using Swing Components in JSP

    Hi,
    I regret that I do not have a very specific problem here. However, I am wondering if there is a way to display Swing components, such as a panel, on a web page using JSP. If so, are there any tutorials on such a practice? Or would something like this be included in a general tutorial?
    Thanks,
    Dan

    You'll have to use a JApplet.

  • How to use Swing Components in  JavaFX

    Hi All,
    I am new to JavaFx. I am trying to use java swing components in javafx.
    I found a sample program in net and tried it. But it shows compile time error.
    Code:
    MySwingComponent .fx
    import javafx.ext.swing.SwingComponent;
    import javax.swing.JComponent;
    import javax.swing.JButton;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    * @author nandha
    class MySwingComponent extends SwingComponent{
    var button: JButton;
    public var text: String on replace {
    button.setText(text);
    public var action: function();
    override protected function createJComponent () : JComponent {
    button = new JButton();
    button.addActionListener(ActionListener {
    public override function actionPerformed(e:ActionEvent){
    action();
    return button;
    The above code shows no error.
    Test SwingButton.fx
    import javafx.stage.Stage;
    import javafx.scene.Scene;
    import swingcomponents.MySwingButton;
    * @author nandha
    Stage {
    title: "Swing Button Example"
    scene: Scene {
    width: 250
    height: 80
    content: [
    MySwingButton{  // error message: imcompatible type. found MySwingButton. Required javafx.scene.Node[]
    text: "Click Me!"
    action: function(){
    println("Hello World!");
    This code which used the MySwingButton shows error: imcompatible type. found MySwingButton. Required javafx.scene.Node[] - where i have added the MySwingButton.
    Please help me to fix the error.
    Thanks &Regards,
    Nandha K

    Hi Sasa,
    First thanks for your reply.
    I found the problem and have fixed.
    Problem:
    There is no class MySwingButton in the package swingcomponents. Its MySwingComponent that i should have used, which is a big mistake that i have done. To my surprise i don't know NetBeans didn't show any error message at that line.
    Thanks & Regards,
    Nandha K

  • How can I use two fonts in swing components?

    I want to implement a project. When a part of the JMenuBar, JButton or other swing components' text is English, I use Tahoma font, and other of these components' text is Chinese, I use SimSun font, just like the Chinese Windows OS. How can I implement it??
    Thanks!!

    Ooh, thats a tricky one. I'm not sure whether you can do that, but maybe someone else with more experienced can correct me.
    You'll probably have to create your own custom JMenu that displays two labels, one for English and one for the Chinese parts?

  • Catching events on Desktop , without using any AWT or Swing components.

    How can I catch events(for eg: mouse clicks) on the Desktop? I do not want to use any AWT or Swing components in my application.
    Also, i want to get events even some other java/non-java application windows are visible on desktop, as long as my application is running.

    Myrequirement is to capture all AWT events, regardless of on which component its being happened.
    I mean I have to capture events outside the current running application (on desktop and any other java/no-java appliation windows also).
    I couldn't find any other forum which discusses about event handling.
    This is part of my app. other end extensively uses awt.

  • How to use stysheet for Swing components?

    Hi,
    Give me a guidence abt how to use Stylesheet for Swing components to crate good looking GUI...........thnx

    thank you for your reply,
    I want to know how many times a component is refreshed. I'm asumming the RefreshCondition attribute gets called everytime a component gets refreshed, hence it could be counted.
    I'm just not sure how to use it.

  • Passing String Parameters using forward tag

    Hi...
    Can anyone please tell me how to pass string parameters using the forward tag, and how to access it?
    And while we're at it, can one pass a String variable using <forward> ?
    Thanks... :-)

    PS...
    Does anyone know what this error is:
    NullPointerException at PageContext.forward(...) Thanks again...

  • I'm new to the LabView. How do I pass data from VI configured using Serial (CMTS using CLI commands to set Parameters ) to VI configured using GPIB(vecto​r signal analyzer ) to measure such as RF frequency or power on the instrument​? Thanks

    I'm new to the LabView. How do I pass data from VI configured using Serial (CMTS using CLI commands to set Parameters ) to VI configured using GPIB(vector signal analyzer ) to measure such as RF frequency or power on the instrument?
    I just want to set something on the front panel that will execute the Serial parameters first and then pass these settings to vector signal analyzer
    Thanks
    Phong

    You transfer data with wires.
    Frankly, I'm a little confused by your question. I can't think of any reason why you would want to pass serial parameters (i.e. baud rate, parity) to a GPIB instrument. Please explain with further detail and attach the code.

  • Pass two parameters using extraParams attribute in protlet:createWebFlowURL tag

    Ho do I pass two parameters using extraParams attribute in portlet:createWebFlowURL?

    <portlet:createWebFlowURL event="RTFM" extraParams="read=manual&do=you">
    "Linda" <[email protected]> wrote:
    >
    Ho do I pass two parameters using extraParams attribute in portlet:createWebFlowURL?

  • Strange system hang using rmi

    Hi, I read for several hours now, but I can't find a hint what problem I'm experiencing. Perhaps someone has an idea?
    I have a small java application (jdk1.3.1_08) which starts a RMIRegistry, binds an object name. It then starts another java application in another jvm using Runtime.exec(...).
    Everything fine until here. The second application starts and works fine.
    BUT: Now I close app2 and start it again from app1. Basically everything works also this time. But there is a delay at startup from app2 which I cannot explain. App2 hangs for 10 secondes up to 70 seconds, between two debug outputs!!!
    Every little hint is appreciated!!
    Torsten.

    I think the hanging of app2 is not depending on what it actually does. But I try to explain some more, you're right:
    App1 is kind of a starter environment, a launch center for several applications. One of these applications is my app2. The reason for using rmi and the second jvm is that I now can use a System.exit(0) in app2 without killing the launch center (app1). When I start app2 standalone from command line without rmi, then it starts without the strange system hang.
    What does app2 do?
    App2 has a starting time of about 30 seconds (standalone) where several things are initialized. In detail, it is a Swing application using the oracle framework JClient for data binding of Swing components and the oracle framework BC4J for mapping to an oracle database. The system hang when started in the second jvm occurs in the startup process, but not at a specific point in the programm. This means: on PC1 it hangs everytime between the same two debug outputs, on PC2 (a bit faster) it hangs later in the code. Thats the reason why I think, there could be a rmi problem.
    What I did not mention yet: The launch center (app1) builds a kind of transfer object which is passed via rmi to app2 in the second jvm.
    Does this help to solve my problem? I really run out of ideas what to do...

Maybe you are looking for

  • Xorg.conf for legacy G3 imac with ATI Riva128

    Hi, after spending a few nights trying to figure out how to get ATI drivers working, and staring at newer and exotic Xorg error messages, I eventually found a working setup. I thought I'd post it here for records, and in case it could help someone. S

  • Cairngorm 3 sample applications - missing libraries

    I have checked out the sample applications from http://opensource.adobe.com/svn/opensource/cairngorm3/trunk/samples/insync/ repository, but these samples reference Cairngorm libraries, which are missing. What versions should I use to be able to build

  • Two file adapter questions

    First, can someone post a URL for detailed file adapter documentation? Second, I'm a little confused how to use the file adapter in the case where I'm writing out a message whose schema is contained in one of the wsdl files instead of in an xsd file.

  • HOW To make tabbing visible on html 5 output in internet explorer 10 and up

    Hello , I am publishing a html 5 output , I need it to allow tabbing on interactive objects. but focus is not set on any object I am not able to see my cursor as I tab in internet explorer. please guide. I have updated the SCORM_utilities.js but no s

  • Mac Mail signature: hyperlinks?

    i had my signature set in my Mac Mail (on my G4 iBook) to include my homepage, written as such: www.ctfoto.com ...without the 'http://' included, it nonetheless appeared in emails i sent as a highlighted hyperlink. now though, with my new PowerPC G5,