Threading Network code in a Swing Application

For my final High school project i have decided to code a Poker game to be played over the network. Problem is, as soon the host starts waiting for a client to connect, everything Swing related freezes. A friend of mine said to use Threads.
Strangely enough, when i made a small example class, this did not happen.
Any e-books,ideas examples about threading please?or a solution to this 'freeze' problem?
Message was edited by:
Naks

There is a ton of stuff in these forums and elsewhere on usage of SwingWorker. It may be helpful to google this and also open the Sun tutorials on concurrency and Swing, and study the the articles.
Good luck!
/Pete

Similar Messages

  • Exception handling for eventlistener inner classes in swing application

    Hi,
    This is probably sooo easy I will kick myself when I find out, but anyway here goes...
    I have an inner class thus...
              cmbOffence.addFocusListener(new FocusAdapter() {
                        public void focusGained(FocusEvent e) {
                             cmbOffence_focusGained(e);
                        public void focusLost(FocusEvent e) {
                        try {
                             cmbOffence_focusLost(e);
                        } catch (XMLConfigurationException xce) {
                   });where cmbOffence.focusLost(e) is looking up to a class that throws an exception which should be fatal i.e. the swing app should close. I want to handle this exception gracefully so therefore want to throw the XMLConfiguratinException to the main application class. How do I do this?? I guess this is more of an inner classes question than a swing one per se, but any help would be appreciated.
    Thanks
    Conrad

    I think you're maybe confusing classes and threads. In the typical Swing application the "main" thread finishes after openning the initial window and there really is no main thread to report back to. In fact the dispatcher thread is about as "main" as they come.
    To exit such a program gracefully is usually a matter of cleaning up resources and calling dispose on the main window, which you can perfectly well do from the dispatcher thread.
    I usually wind up with some centralised method to deal with unexpected exceptions, for example as part of my desk top window in an MDI, but it's called from the dispatcher thread as often as from anywhere.

  • Can existing Swing Applications be ported to JavaTV/MHP/IPTV networks

    I am a newbie to JavaTV/MHP/IPTV
    Are the applications downloaded from the application provider to the set top box or they are executed as in a X terminal fashion?
    I have my Swing Applications . Can it be ported to a JavaTV/MHP/IPTV networks
    Thanks in advance
    CSJakharia

    All applications downloads to STB befoure running.
    Swing library is not included to MHP/OCAP/ACAP,
    so your swing components are not supported by STB receiver.

  • Source code of a good swing application

    Hi,
    Can someone provide me a link to a good application with available source code based on swing (a database one with forms would be great). I'm trying to get some good implementation practice but I can't find any application one the net.
    thank you

    Hi Geoffrey,
    You can download a Web dynpro ABAP component into a Nuggest file using SAPLINK. You can download it from site http://groups.google.com/group/saplink  or http://www.saplink.org
    There is a plug-in for Web Dynpro.
    If you have a very small piece of code(Like only code in WDDOINIT method),  then you can copy and paste the code into a notepad or word file too.
    Hope it helps.

  • Seperating Graphics from code on Swing application

    1)I want to draw simple graphics like rectangles, curves, lines, images etc on top of my swing application. I would like to separate the graphic representation from the code to an external file like XML,XAML , SVG etc.. All these graphics should be editable(i.e. scaling, translating the position, changing font, color etc) . Please let me know the possible technologies?
    2)Also is it possible to use HTML5 canvas component oj java swing.
    JButton button = new JButton("<html><canvas>...</canvas></html>")
    is this possible?.It is not working for me, if it is possible am i missing out something?

    Hi,
    Thanks for your reply!
    I went through the link you provided. This is exactly how my application draws graphics now. But my problem is one of my shape will be a rectagle with circle, another will be rectangle with image.So i have to write seperate classes to draw each of these shapes. My idea is to avoid creating seperate classes but an external file will define all the graphics components and library should be smart enough to identify the drawings required and paint it on my swing components. I am in search for a library or a java feature that can do this. Please help!
    Regards,
    Anjana

  • Memory Leak in a multi threaded Swing application  (ImageIcon)

    When I profile my swing application with netbeans 5.5 , I notice that after each periodically tidy up my image container (add,remove IconImage objects to a hashmap or arraylist), there gather by and by surviving objects. This leads to run out of memory after a while. Is there any other way to avoid this effect?
    Any ideas about "The JVM is notorious for caching images."
    please help..
    what I have made briefly:
    1.) Read the binary stream from the db :
    rs=stmt.executeQuery(query);
    if(rs.next()){
        int len=rs.getInt(2);
        byte [] b=new byte[len];
        InputStream in = rs.getBinaryStream(3);
        try {
                in.read(b);
                in.close();
                img=Toolkit.getDefaultToolkit().createImage(b);
         } catch (IOException e) {
                e.printStackTrace();
    stmt.close();
    rs.close();2.) hold the icon as field :
    this.icon =  new ImageIcon(img);3.) After a while I remove the object from my collection and on the
    overridden method finalize() I also call the flush() method.
    if(this.icon != null){
                this.icon.getImage().flush();
                this.icon = null;
    }The surviving objects still increase?! On the page of SUN they
    submitted a bug. But this is set on closed/fixed.
    (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4014323)
    What am I doing wrong? I also use the byte[] constructor on creating the icon and
    my java version is 1.5.0_10.

    If in your JFrame u have placed your image, before invoke the dispose()
    method put explicitly the image pointer to null and deregister all listener
    you have added to any componentI implemented your suggest and after starting a long time test, in one hour there gathered aprox. 500 surviving generations. I attach a snapshot and the java file ( http://www.box.net/public/eqznamrazd ). The used heap size swings between 3MB and 5MB. I guess this wont kill so quickly the application but anyway there is something wrong!
    Even properly closed streams, database connections etc.. Really despairing. Could one take a look to the java source?
    some snippets bellow:
    private class MyImageIcon extends ImageIcon {
            public MyImageIcon(Image img){
                super(img);
            public void removeImage(Image anImage){
                tracker.removeImage(anImage);
    private class DetailDialog extends javax.swing.JFrame {
            private String personnr;
            private MyImageIcon icon;
            public DetailDialog(String personnr,MyImageIcon icon){
                this.personnr = personnr;
                this.icon = icon;
            public void dispose() {
                if(icon != null){
                    icon.removeImage(icon.getImage());
                    icon.getImage().flush();
                    icon = null;
                super.dispose();
    private class Person extends Object {
            private MyImageIcon icon;
            private String number;
            private DetailDialog detailDialog;
            protected void destroy() {
                if(icon!=null){
                    icon.removeImage(icon.getImage());
                    icon.getImage().flush();
                    icon = null;
                if(detailDialog!=null){
                    detailDialog.dispose();
    private Image LoadImageFromDB(String personnr){
            Image img = null;
            String filename = personnr + ".jpg";
            Connection con = getMysqlConnection();
            Statement stmt;
            ResultSet rs;
            try {
                stmt = con.createStatement();
                String query = "select * from personImage where image='"+filename+"'";
                rs=stmt.executeQuery(query);
                if(rs.next()){
                    int len=rs.getInt(2);
                    byte [] b=new byte[len];
                    InputStream in = rs.getBinaryStream(3);
                    try {
                        in.read(b);
                        in.close();
                        img =
                                java.awt.Toolkit.getDefaultToolkit().createImage(b);
                    } catch (IOException e) {
                        e.printStackTrace();
                rs.close();
                rs = null;
                stmt.close();
                stmt = null;
                con.close();
                con = null;
            } catch (SQLException e) {
                e.printStackTrace();
            return img;
    public void random(){
            java.sql.ResultSet rs = null;
            java.sql.Statement stmt=null;
            java.sql.Connection con = getSybaseConnection();
            try {
                try {
                    stmt = con.createStatement();
                    rs = stmt.executeQuery(randomquery);
                    while(rs.next()){
                        Person person = new Person();
                        person.number = rs.getString("PersonNr");
                        Image img = LoadImageFromDB(person.number);
                        if(img !=null){
                            MyImageIcon ico = new MyImageIcon(img);
                            person.icon = ico;
                        person.detailDialog = new
                                DetailDialog(person.number,person.icon);
                        personList.add(person);
                        System.out.println("Container size: " +
                                personList.size());
                        counter++;
                    if(counter%20 == 0){
                        for(Person p : personList){
                            p.destroy();
                        personList.clear();
                        System.gc();//no need, but I force for this example
                        System.out.println("Container cleared, size: " +
                                personList.size());
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }finally{
                    if(rs != null){
                        rs.close();
                    }if(stmt != null){
                        stmt.close();
                    }if(con != null){
                        con.close();
            } catch (SQLException ex) {
                ex.printStackTrace();
        }

  • Can not launch swing application from Java Web Start 1.6.0_37

    I have a dynamic generated jnlp file from a serlvet. When I used Java Web Start to start the swing application, it failed. The exception showed
    com.sun.deploy.net.FailedDownloadException: Unable to load resource: http://xxxx.xx.com:9080/dilpipweb/Test-1.0-SNAPSHOT.jar
         at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
         at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source)
         at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source)
         at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
         at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
         at com.sun.deploy.net.DownloadEngine.getResource(Unknown Source)
         at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)
         at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
         at java.util.concurrent.FutureTask.run(Unknown Source)
         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)
    I used janela to validate the generated jnlp file. It was valid. I also checked the tomcat access log, it showed that the Test-1.0-SNAPSHOT.jar file was accessed correctly (with a 200 return code).
    Can anyone help me what was the problem?
    Thanks,

    Hi.
    I got a different problem. My Corba application works in JRE 1.6, but doesn't works in JRE 1.5.X. I got an unexpected error and my console shows:
    getSubjectX500Principal NoSuchMethodError: java.lang NoSuchMethodError
    #### Java Web Start Error:
    #### null
    Can you help me?

  • Need Help to update the labels in the GUI syncronously - Swing application

    Hello everyone,
    I need some help regarding a swing application. I am not able to syncronously update the counters and labels that display on my Swing GUI as the application runs in the background. But when the running of application is completed, then the labels on the GUI are getting updated, But I want update the labels and counters on the GUI syncronously as the code executes... below I am giving the format of the code I have written..............
    public class SwingApp extends JFrame{
            // here i have declared the label and component varibles like...
                      private JTextField startTextField;
           private JComboBox maxComboBox;
           private JTextField logTextField;
           private JTextField searchTextField;
           private JLabel imagesDownloaded1;
           private JLabel imagesDownloaded2;
           private JLabel imagesDidnotDownload1;
           private JLabel imagesDidnotDownload2;
                      private JButton startButton;
    //now in the constructer.............
    public Swing(){
    //I used gridbaglayout and wrote the code for the GUI to appear....
    startButton = new JButton("Start Downloading");
        startButton.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            try{
                 actionSearch();   //actionSearch will contain all the code and the function calls of my application...........
            }catch(Exception e1){
                 System.out.println(e1);
        constraints = new GridBagConstraints();
        constraints.gridwidth = GridBagConstraints.REMAINDER;
        constraints.insets = new Insets(5, 5, 5, 5);
        layout.setConstraints(startButton, constraints);
        searchPanel.add(startButton);
    //update is a function which initiates a thread which updates the GUI. this function will be called to pass the required variables in the application
    public void update(final int count_hits, final int counter_image_download1, final int didnot_download1) throws Exception{
         Thread thread = new Thread(new Runnable() {
             public void run() {
                  System.out.println("entered into thread");
                  System.out.println("the variable that has to be set is " + count_hits);
                  server_hits_count.repaint(count_hits);
                  server_hits_count.setText( " "+ Integer.toString(count_hits));
                  imagesDownloaded2.setText(" " + Integer.toString(counter_image_download1));
                  imagesDidnotDownload2.setText(" " + Integer.toString(didnot_download1));
                  repaint();
         //this.update(count_hits);
         thread.start();
    //Now in main............................
    public static void main(String[] args){
    Swing s = new Swing();
    s.setVisible(true);
    }//end of main
    }//end of class SwingAbove I have given the skeleton code of my application........ Please tell me how to update the GUI syncronously...
    Please its a bit urgent...............
    Thank you very much in advance
    chaitanya

    First off, note that this question should have been posted in the Swing section.
    GUI events run in a separate thread (the AWT / Event Dispatch Thread) than your program.
    You should be invoking AWT/Swing events via SwingUtilities.invokeLater().
    If for whatever reason you want to have the program thread wait for the event to process
    you can use invokeAndWait().
    http://java.sun.com/javase/6/docs/api/javax/swing/SwingUtilities.html

  • Is there any Open source Reporting Toll for using in swing application ?

    Is there any reporting system like crystal report or any thing for report generation. Using JTable class it is so time taking job. I have downloaded Eclipse with crystal report embedded, and have created a report but can not integrate the report with JFrame with any menu item action. All the code i got releted to JSP. and few code get that are using
    //Crystal Java Reporting Component (JRC) imports.
    import com.crystaldecisions.reports.sdk.*;
    import com.crystaldecisions.sdk.occa.report.lib.*;
    //Java Imports.
    import javax.swing.*;
    public class JRCViewReport {
         private static final String REPORT_NAME = "JRCViewReport.rpt";
         public static void launchApplication() {
              try {
                   //Open report.
                   ReportClientDocument reportClientDoc = new ReportClientDocument();
                   reportClientDoc.open(REPORT_NAME, 0);
                   //Launch JFrame that contains the report viewer.
                   new ReportViewerFrame(reportClientDoc);          
              catch(ReportSDKException ex) {     
                   System.out.println(ex);
              catch(Exception ex) {
                   System.out.println(ex);               
         public static void main(String [] args) {
              //Event-dispatching thread to run Swing GUI.  This is good practice for Swing applications
              //to help ensure that events are dispatched in a predicatable order.
              //For more information on using this method, refer to the SUN site below for more details:
              //http://java.sun.com/products/jfc/tsc/articles/threads/threads1.html
              SwingUtilities.invokeLater(new Runnable() {
                   public void run() {
                        //Hand-off to worker function to start application.
                        launchApplication();                    
    }Also there is one file ReportViewerFrame.java
    but the error is "*com.crystaldecisions.reports.sdk*" not found
    Please help ..........................................................

    I have already use Jasper Report. Thakns a lot for your suggestion. Now I think i have solved your problem...... View the code.. this code will not open the JasperViewer but from the background it will be printed and after calling the printing function you can save a data in the database ------------------------
    JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
            Connection con = Database.getConnection(); // your database connection
            jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, con);
            for(int i=0;;i++) { //print all pages
                try{
                    JRPrinterAWT.printPages(jasperPrint,i,i,false);
                }catch(Exception e) {
                    break;
            }

  • Open image in Swing Application

    Hi,
    I'm having trouble getting an image to open into my swing application and I cant figure out whats wrong. In response to selecting the "Open" button or menu item a JFileChooser opens up and i select an image but the image doesn't actually load. If anyone could help i'd really appreciate it.
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.*;
    import java.io.*;
    import javax.swing.border.*;
    import javax.imageio.*;
    class PhotoEditor extends JPanel implements ActionListener {
         * Create the GUI and show it.  For thread safety,
         * this method should be invoked from the
         * event-dispatching thread.
        JMenu imageMenu, effectsMenu;
        JFileChooser fc = new JFileChooser();
        BufferedImage img = null;
           public JMenuBar createMenuBar() {     
         JMenuBar menuBar = new JMenuBar();
        /* Build the first menu: */
        JMenu fileMenu = new JMenu("File");
        menuBar.add(fileMenu);
        fileMenu.setMnemonic(KeyEvent.VK_F);
        //a group of JMenuItems under the File option:
            String[] menuItems1 = {"Open", "Save","Save As..", "Close"};
        String[] menuIcons1 = {"Open.gif", "Save.gif", "", ""};
        for (int i = 0; i<menuItems1.length; i++)
                  JMenuItem fileMI = new JMenuItem(menuItems1, new ImageIcon(menuIcons1[i]));
              fileMI.addActionListener(this);
              fileMenu.add(fileMI);
    //adding a separator to the drop down menu list
    fileMenu.addSeparator();
    JMenuItem exitMI = new JMenuItem("Exit", new ImageIcon("Exit.gif"));
    exitMI.addActionListener(this);
    fileMenu.add(exitMI);
    /* Code which builds all the menu here */
    return menuBar;
         public JToolBar createToolBar() {     
         JToolBar toolB = new JToolBar(FlowLayout.LEFT);
    toolB.setLayout(new FlowLayout());
    // contentPane.add(toolB, "North");
    JButton newButton = new JButton(new ImageIcon("new24.gif"));
    newButton.addActionListener(this);
    toolB.add(newButton);
    newButton.setToolTipText("New");
    newButton.setActionCommand("New");
    //adding a separator to the drop down menu list
    toolB.addSeparator();
    JButton openButton = new JButton(new ImageIcon("open24.gif"));
    openButton.addActionListener(this);
    toolB.add(openButton);
    openButton.setToolTipText("Open");
         openButton.setActionCommand("Open");
    /* More code building the toolbar*/
    return toolB;
         public void actionPerformed(ActionEvent e) {
    Object eventSource = e.getSource();
    if ((eventSource instanceof JMenuItem) || (eventSource instanceof JButton));{
    String label = (String) e.getActionCommand();
    //Sets up the Action Listeners
    if (label.equals("Exit")) {
    System.exit(0);
    // Closes application
    else if (label.equals("Open")) {
         openImage();
    /* More codes for each button or menu item */
    protected void openImage() {
              int returnVal = fc.showOpenDialog(this);
    if (returnVal == JFileChooser.APPROVE_OPTION) {
    File file = fc.getSelectedFile();
         try {
                   img = ImageIO.read(file);
                        catch (IOException e1) {
    public void paintComponent(Graphics g) {
         super.paintComponent(g);
    g.drawImage(img, 500, 500, null);
    private static void createAndShowGUI() {
    //Create and set up the window.
    JFrame frame = new JFrame("Photo Editor");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //Create a main label to put in the content pane.
    JLabel main = new JLabel();
    // main.setOpaque(true);
    // main.setBackground(new Color(128, 128, 128));
    main.setPreferredSize(new Dimension(800, 600));
    //Set the menu bar and add the label to the content pane.
    PhotoEditor mainmenu = new PhotoEditor();
    frame.setJMenuBar(mainmenu.createMenuBar());
         frame.getContentPane().add(mainmenu.createToolBar(), BorderLayout.PAGE_START);
    frame.getContentPane().add(main, BorderLayout.CENTER);
    //Display the window.
    frame.pack();
    frame.setVisible(true);
    public static void main(String[] args) {
    //Schedule a job for the event-dispatching thread:
    //creating and showing this application's GUI.
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
    public void run() {
    createAndShowGUI();

    Your PhotoEditor class extends JPanel. In that class you override paintComponent(). But you never add the panel to the GUI, so that method is never invoked.
    Personally I would have the PhotoEditor class extend JFrame. Then in the constructor you build all the components for the frame
    a) build the menu
    b) build the toolbar
    Then I would create a PhotoPanel class that you extend and override the paintComponent(). Then you add this panel to the GUI as your main panel.
    For a simple example of drawing a background image on a panel search the forum for my BackgroundImage example.

  • Swing application eats CPU on resume after standby

    My application contains a mix of regular Swing components and about 200 (small) custom components (JPanels) that draw themselves. The problem is that if put my laptop into Standby, then restart it, the application eats CPU. It goes from ~4% pre standby to ~48% after standby. Totally repeatable. There is only the main thread, the AWT thread and a couple timers firing: one to get data from a server and one to redraw the custom controls to make the control blink (calls repaint() to cue up a call to paintComponent()). I put timing code in the two timer driven threads and both are running fine. NOTE: each of the custom components is just a rectangle with a short text string in it. Think checkerboard with text. The background color is all that is being changed. It's basically a grid of alarm/status "lights".
    I did some searching and only found a reference to a drawing bug that was fixed back in 1.4.x that had to do with WinXP and dual-headed computers.
    Note that another simple Swing application I wrote (no custom controls), doesn't appear to behave this way, so I suspect it has to do with the custom drawing stuff (rolling my own paintComponent() method).
    Any thoughts on how to figure out what is eating the CPU? I'm using NetBeans 6.7 and JDK 1.6_14 under Windows XP.
    Edited by: garrysimmons on Sep 15, 2009 1:52 PM
    Edited by: garrysimmons on Sep 15, 2009 2:57 PM
    Edited by: garrysimmons on Sep 15, 2009 3:02 PM

    It doesn't matter if it's a Swing timer or a Util timer. It behaves the same either way. That was one of the first things I tried.
    I ended up refactoring the code to go from a grid of individual controls (think checker board where each square is a control that draws itself), to a single "board" control that draws a grid. That seems to have fixed the issue. I can go in/out of Standby and the app doesn't eat a ton of CPU any more. The real problem may still be there, just too small of an effect to notice.
    I don't know why the original design would work fine before a Standby, but not after. Having ~200 little controls doing repaints twice a second must confuse something in the JVM/Windows versus having 4 large controls doing the same amount of drawing.
    It's working, so time to move on.

  • What are the requirements to run a Swing application?

    I'm trying to send a simple swing application to a friend that has Mac OSX, but the buttons don't show up.
    Do people actually need the Java SDK in order for swing apps to work? Or is plain java enough? (He has normal java, because we play minecraft sometimes)
    Anyway, my buttons are not showing up on his computer, not even when I use the cross platform look at feel

    Here is the code I'm using, it's an application that makes the user select a folder and stuff will happen to it.
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.UIManager;
    import javax.swing.UnsupportedLookAndFeelException;
    public class SomeGUI extends JFrame implements ActionListener, Runnable
        public JButton exit;
        public JButton run;
        JPanel panel;
        JFileChooser chooser;
        String returnpath;
        JLabel progress;
      public SomeGUI()
         try
         UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
         catch (ClassNotFoundException ex)
             Logger.getLogger(SomeGUI.class.getName()).log(Level.SEVERE, null, ex);
         catch (InstantiationException ex)
             Logger.getLogger(SomeGUI.class.getName()).log(Level.SEVERE, null, ex);
         catch (IllegalAccessException ex)
             Logger.getLogger(SomeGUI.class.getName()).log(Level.SEVERE, null, ex);
         catch (UnsupportedLookAndFeelException ex)
             Logger.getLogger(SomeGUI.class.getName()).log(Level.SEVERE, null, ex);
          setTitle("BenkyoAdd");
          setSize(206,100);
          setResizable(false);
          setDefaultCloseOperation(EXIT_ON_CLOSE);
          setLocationRelativeTo(null);
          setVisible(true);
          panel = new JPanel();
          getContentPane().add(panel);
          panel.setLayout(null);
          run = new JButton("Run");
          run.setFocusable(false);
          run.setBounds(0,0,100,30);
          panel.add(run);
          run.addActionListener(this);
          progress = new JLabel("Please click run");
          progress.setFont(new Font("lol",Font.PLAIN,14));
          progress.setBounds(10, 30, 200, 50);
          panel.add(progress);
          exit = new JButton("Exit");
          exit.setFocusable(true);
          exit.setBounds(100, 0, 100, 30);
          panel.add(exit);
          exit.addActionListener(this);
          chooser = new JFileChooser();
          chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        public void actionPerformed(ActionEvent e)
         if(e.getSource().equals(exit))
             System.exit(0);
         if(e.getSource().equals(run))
             progress.setText("Select a folder...");
             chooser.showOpenDialog(panel);
             this.returnpath = chooser.getSelectedFile().getAbsolutePath();
             exit.setEnabled(false);
             run.setEnabled(false);
             progress.setText("Copying to output folder...");
             new Thread(this).start();
      public static void main(String args[])
          new SomeGUI();
        public void run()
         new Changer(this, this.returnpath);
         exit.setEnabled(true);
         exit.requestFocusInWindow();
         progress.setText("Done! You can now exit!");
    }

  • Swing application doesn't launch

    Hallo,
    I've programmed a simple swing-application that was til now functionning correctly. But today I can't launch this application. If I launch it with java -jar myprog.jar I get following information:
    Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: sun.font.FileFontStrike.createScalerContext(J[DZIIZFF)J
    at sun.font.FileFontStrike.createScalerContext(Native Method)
    at sun.font.FileFontStrike.<init>(Unknown Source)
    at sun.font.FileFont.createStrike(Unknown Source)
    at sun.font.Font2D.getStrike(Unknown Source)
    at sun.font.Font2D.getStrike(Unknown Source)
    at sun.font.CompositeStrike.getStrikeForSlot(Unknown Source)
    at sun.font.CompositeStrike.getFontMetrics(Unknown Source)
    at sun.font.FontDesignMetrics.initMatrixAndMetrics(Unknown Source)
    at sun.font.FontDesignMetrics.<init>(Unknown Source)
    at sun.font.FontDesignMetrics.getMetrics(Unknown Source)
    at sun.swing.SwingUtilities2.getFontMetrics(Unknown Source)
    at javax.swing.JComponent.getFontMetrics(Unknown Source)
    at javax.swing.plaf.metal.MetalTitlePane$TitlePaneLayout.computeHeight(Unknown Source)
    at javax.swing.plaf.metal.MetalTitlePane$TitlePaneLayout.preferredLayoutSize(Unknown Source)
    at java.awt.Container.preferredSize(Unknown Source)
    at java.awt.Container.getPreferredSize(Unknown Source)
    at javax.swing.JComponent.getPreferredSize(Unknown Source)
    at javax.swing.plaf.metal.MetalRootPaneUI$MetalRootLayout.layoutContainer(Unknown Source)
    at java.awt.Container.layout(Unknown Source)
    at java.awt.Container.doLayout(Unknown Source)
    at java.awt.Container.validateTree(Unknown Source)
    at java.awt.Container.validateTree(Unknown Source)
    at java.awt.Container.validate(Unknown Source)
    at java.awt.Window.pack(Unknown Source)
    at logviewer.Main$1.run(Main.java:61)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: sun.font.FileFontStrike.createScalerContext(J[DZIIZFF)J
    at sun.font.FileFontStrike.createScalerContext(Native Method)
    at sun.font.FileFontStrike.<init>(Unknown Source)
    at sun.font.FileFont.createStrike(Unknown Source)
    at sun.font.Font2D.getStrike(Unknown Source)
    at sun.font.Font2D.getStrike(Unknown Source)
    at sun.font.CompositeStrike.getStrikeForSlot(Unknown Source)
    at sun.font.CompositeStrike.getFontMetrics(Unknown Source)
    at sun.font.FontDesignMetrics.initMatrixAndMetrics(Unknown Source)
    at sun.font.FontDesignMetrics.<init>(Unknown Source)
    at sun.font.FontDesignMetrics.getMetrics(Unknown Source)
    at sun.swing.SwingUtilities2.getFontMetrics(Unknown Source)
    at javax.swing.JComponent.getFontMetrics(Unknown Source)
    at javax.swing.plaf.metal.MetalTitlePane$TitlePaneLayout.computeHeight(Unknown Source)
    at javax.swing.plaf.metal.MetalTitlePane$TitlePaneLayout.preferredLayoutSize(Unknown Source)
    at java.awt.Container.preferredSize(Unknown Source)
    at java.awt.Container.getPreferredSize(Unknown Source)
    at javax.swing.JComponent.getPreferredSize(Unknown Source)
    at javax.swing.plaf.metal.MetalRootPaneUI$MetalRootLayout.layoutContainer(Unknown Source)
    at java.awt.Container.layout(Unknown Source)
    at java.awt.Container.doLayout(Unknown Source)
    at java.awt.Container.validateTree(Unknown Source)
    at java.awt.Container.validateTree(Unknown Source)
    at java.awt.Container.validate(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    after this output the application hangs, my windows commad prompt doesn't show the prompt.
    Secondary, it is not possible to launch the Java-Applet in Control Panel of Windows. It happans nothing.
    Whats going wrong? My program didn't change, it's the same program I was using since longer time. What could I do to make it function correctly?
    with regards
    Rafal Ziolkowski

    Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: sun.font.FileFontStrike.createScalerContext(J[DZIIZFF)J
    UnsatisfiedLinkError indicates that the JVM cannot find a native method's definition. Generally this means that the shared object file (.so on unices, .dll on Windows) cannot be found by the JVM.
    Since the missing method is visibly Sun's code, presumably a built-in JRE method, that probably means your JRE/JDK install has been corrupted (corroborated by a quick Google search on the obvious keywords).
    Try reinstalling the JRE or JDK.
    Secondary, it is not possible to launch the Java-Applet in Control Panel of Windows. It happans nothing. I don't understand this sentence. What are you doing exactly, and how is that related to the first question?
    Much luck,
    J.

  • Any known issue about running Swing application in WTS?

    *{color:#0000ff}Is there any known issue about running Swing Application in Windows Terminal Server?{color}*
    It is started using JWS from internet (I mean, it checks if there is an avaiable update and updates or just fun).
    _*{color:#800000}+The problem is that just one machine can open the application at the same time+*_
    _*{color}*_
    *{color:#666699}Is there any config in java or jws to run properly several instances of the application (terminal clients)?{color}*
    Edited by: Franzisk on Sep 24, 2007 6:16 PM

    876587 wrote:
    ... and that cause the other threads cannot access the JNI. The same application works fine on other Solaris 10 machines.
    Different environments mean just that. So something could be causing it outside java.
    Additionally if anything at all is different in the execution data, such as even a name having a different size, then it would change the execution path.
    Which would cause a problem in the JNI code to manifest itself on only one box. Probably isn't a pointer bug but all sorts of odd behavior can result from that.

  • Exiting a swing application

    Hello,
    I have a swing application that behaves differently depending on if I go to file->exit or if I hit the X on the frame border.
    Specifically, some threads keep running when I go to file->exit.
    I would like for the app to behave as if they hit the X when they go to file->exit and have all threads stop.
    The code I have for file->exit is ....
            exitItem.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent event) {
                    frame.dispose();
            });Is there something else I could be doing here to make it kill everything?
    Thanks,
    ~Eric

    Hello,
    I have a swing application that behaves differently
    depending on if I go to file->exit or if I hit the X
    on the frame border.
    Specifically, some threads keep running when I go to
    file->exit.
    I would like for the app to behave as if they hit the
    X when they go to file->exit and have all threads
    stop.
    The code I have for file->exit is ....
            exitItem.addActionListener(new
    ActionListener() {
    public void actionPerformed(ActionEvent
    event) {
    frame.dispose();
    });there something else I could be doing here to make it
    kill everything?
    System.exit(0);

Maybe you are looking for

  • An error has occurred. Please try again, and if the problem persists, contact your help desk or system administrator. (Error 3000)

    Hi, When i open my Password Reset portal then provide Username credentials in text box and click on next then asked the Securites Question Answers to me,i provide the correct Answers to the securites Question after this password reset portal asked me

  • Titles, Date/timings in CSV file.

    Hello Friends, Just curious to know if we could add the titles ,date,time in our excel report or not. I have a couple of reports with me and i have activated the "Report Export" functionality in that. Just want to know how i can add these things in r

  • Mapping UML Model to Database Schema

    Hi All, Is it possible to map UML business object model on database schema using Mapping Workbenck? I've done the mapping with imported java classes, but wodering if same could be done with the UML models. I couldn't find any documentation about it e

  • How to create a table control

    Hi all, I want to create a table control which is  allow the user to Display/Change records from the new Custom table B that have no Acknowledgement Received Date or Time.  The users will be able view this data without changing it.  When a change is

  • Need To Log to network drive using FileHandler

    I'm trying to log to a PC network drive using new FileHandler("//abc_machine/directory_name/temp%g.log") The generate method (which generates a filename from a pattern) appears to be stripping out my first "/" denoting the network drive Is there any