GUI Update and Threads

Hello all, I'm new to Java and am having a hard time trying to understand how to implement multi-threading. I've built a simple app with GUI for converting files between encodings. The program works fine but some files take a long time to convert so I want to show the user some status text in the GUI. The conversion function is called from within a button click event, and further from within a loop that cycles through a directory of files to convert. I'm trying to show the name of the file being converted in a label in the GUI, but the label won't update until the button click event finishes, so only the last file converted is displayed.
I've read through countless examples on this forum and others, and in several online books. I understand the concept of multi-threading and some of the issues surrounding them, but can't seem to grasp the mechanics of getting them set up in code at this point.
Can anyone provide some coding tips? The code is provided below minus the NetBeans generated layout code. I can provide this also if needed. You'll see some lines commented out in the For loop that I tried but that didn't work.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class EnCon4 extends javax.swing.JFrame {
    //Declare variables and set default values
    String fname="UTF-16";
    String tname="UTF8";
    String infile;
    String outfile;
    /** Creates new form EnCon4 */
    public EnCon4() {
        initComponents();
    private void encodingToListActionPerformed(java.awt.event.ActionEvent evt) {                                              
        tname=(String)encodingToList.getSelectedItem();
    private void encodingFromListActionPerformed(java.awt.event.ActionEvent evt) {                                                
        fname=(String)encodingFromList.getSelectedItem();
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        jLabelStatus.setText("Converting From: " + fname + "  To: " + tname);
        jLabelStatus.repaint();
     File dir1 = new File ("."); //Set current directory
     //Create new subdirectory for converted files
     String newDirName = dir1 + File.separator + "Conv"; 
         File dir2 = new File(newDirName);
         if (!dir2.exists()) {
            dir2.mkdir();
         try {
            //Set path to current directory
            File pathName = new File(dir1.getCanonicalPath());
            File[] contents = pathName.listFiles();
            for (File file : contents) {
                if (!file.isDirectory()) {
                    //Create the converted files
                //Set variables
                infile = dir1.getCanonicalPath() + File.separator + file.getName();
                outfile = dir2.getCanonicalPath() + File.separator + file.getName();
                //Check file names to exclude converting the java class file
                if (!infile.endsWith("class") & !infile.endsWith("jar")) {
                        //Print the file name
                        jLabelStatus.setText("Converting file:  " + file.getName());
                        jLabelStatus.repaint();
                        //catch (Exception econ) {
                        //    System.out.print(econ.getMessage());
                        //    System.exit(1);
                        //System.out.println(file.getName());
                   //Call conversion function in a new thread.
                   //Example with static args //try { convert("NamesASCII.txt", "UTF8.txt", "ISO8859_1", "UTF8"); }
                       //Thread t = new Thread(new Runnable() {
                            //public void run() {
                            try {convert(infile, outfile, fname, tname);
                            catch (Exception econ) {
                                jLabelStatus.setText(econ.getMessage());
                                jLabelStatus.repaint();
                                //System.out.print(econ.getMessage());
                             //System.exit(1);
                        //t.start();
            //jLabelStatus.setText("Conversion complete.");
            //jLabelStatus.repaint();
         catch(IOException econ) {
            jLabelStatus.setText("Error: " + econ);
            //System.out.println("Error: " + econ);
    public static void convert(String infile, String outfile, String from, String to)
        throws IOException, UnsupportedEncodingException {
        // set up byte streams
        InputStream in;
        if (infile != null) in = new FileInputStream(infile);
        else in = System.in;
        OutputStream out;
        if (outfile != null) out = new FileOutputStream(outfile);
        else out = System.out;
        // Set up character stream
        Reader r = new BufferedReader(new InputStreamReader(in, from));
        Writer w = new BufferedWriter(new OutputStreamWriter(out, to));
        // Copy characters from input to output.  The InputStreamReader
        // converts from the input encoding to Unicode, and the OutputStreamWriter
        // converts from Unicode to the output encoding.  Characters that cannot be
        // represented in the output encoding are output as '?'
        char[] buffer = new char[4096];
        int len;
        while((len = r.read(buffer)) != -1)
          w.write(buffer, 0, len);
        r.close();
        w.flush();
        w.close();
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new EnCon4().setVisible(true);
    // Variables declaration - do not modify                    
    private javax.swing.JComboBox encodingFromList;
    private javax.swing.JComboBox encodingToList;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabelStatus;
    private javax.swing.JPanel jPanel1;
    // End of variables declaration                  
}

There are two key principles here. The first is "remove long-running
processes from the event dispatch thread". If in doubt, you
can check with SwingUtilities.isEventDIspatch(). The second is
"put GUI updates on the event dispatch thread", preferable
with SwingUtilities.invokeLater().
Today is my last day at work, so here's a fish:
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class EnCon extends JFrame{
    String fname="UTF-16";
    String tname="UTF8";
    String infile;
    String outfile;
    /** Creates new form EnCon4 */
    public EnCon() {
        super("EnCon");
        jButton1.addActionListener(new ActionListener() {
            public void actionPerformed(final ActionEvent ae) {
                final Thread t = new Thread(new MyRunner());
                t.start();
        final JPanel container = new JPanel();
        container.add(jButton1);
        container.add(jLabelStatus);
        this.getContentPane().add(container);
        this.pack();
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    private class MyRunner implements Runnable {
        public void run() {
            sendMessage("Converting From: " + fname + "  To: " + tname);
            File dir1 = new File ("."); //Set current directory
            //Create new subdirectory for converted files
            String newDirName = dir1 + File.separator + "Conv";
            File dir2 = new File(newDirName);
            if (!dir2.exists()) {
                dir2.mkdir();
            try {
                //Set path to current directory
                File pathName = new File(dir1.getCanonicalPath());
                File[] contents = pathName.listFiles();
                for (File file : contents) {
                    if (!file.isDirectory()) {
                        infile = dir1.getCanonicalPath() + File.separator + file.getName();
                        outfile = dir2.getCanonicalPath() + File.separator + file.getName();
                        if (!infile.endsWith("class") & !infile.endsWith("jar")) {
                            sendMessage("Converting file:  " + file.getName());
                            try {
                                convert(infile, outfile, fname, tname);
                                sendMessage("Done");
                            catch (Exception econ) {
                                sendMessage(econ.getMessage());
            catch(IOException econ) {
                sendMessage("Error: " + econ);
        private void sendMessage(final String message) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    jLabelStatus.setText(message);
    public static void convert(String infile, String outfile, String from, String to)
    throws IOException, UnsupportedEncodingException {
        // set up byte streams
        InputStream in;
        if (infile != null) in = new FileInputStream(infile);
        else in = System.in;
        OutputStream out;
        if (outfile != null) out = new FileOutputStream(outfile);
        else out = System.out;
        // Set up character stream
        Reader r = new BufferedReader(new InputStreamReader(in, from));
        Writer w = new BufferedWriter(new OutputStreamWriter(out, to));
        // Copy characters from input to output.  The InputStreamReader
        // converts from the input encoding to Unicode, and the OutputStreamWriter
        // converts from Unicode to the output encoding.  Characters that cannot be
        // represented in the output encoding are output as '?'
        char[] buffer = new char[4096];
        int len;
        while((len = r.read(buffer)) != -1)
            w.write(buffer, 0, len);
        r.close();
        w.flush();
        w.close();
    public static void main(String args[]) {
        new EnCon().setVisible(true);
    // Variables declaration - do not modify
    private JButton jButton1 = new JButton("Convert");
    private JLabel jLabelStatus = new JLabel("jLabelStatus");
    // End of variables declaration
}

Similar Messages

  • Possible to update gui with new thread AND halt program execution?

    Hello, my problem is the following:
    I have a JButton that performs a sql query and retrieves information from a database, while this is done I would like to update a JLabel with information that the query is in progress. I have got this working but the problem is that I would like the main thread to wait until the search thread has finished execution, of course this inflictes with the gui update... look below for code:
    //class that synchronizes the threads when retrieving data
    public class SynkroniseradVektorKlass
       private Vector verde = new Vector();
       private boolean inteFerdig=true;
       public SynkroniseradVektorKlass(boolean inteFerdig)
          this.inteFerdig=inteFerdig;
       //sets the value of the vector
       public synchronized void settVerde(Vector verde)
           this.verde=verde;
           //set the boolean to false so the wait() can be avoided
           inteFerdig=false;
           //notify all threads that we have retrieved a value
           notifyAll();
        public synchronized Vector returneraVerde()
            //if no value has been retrieved, wait
            if(inteFerdig)
               try
                    wait();
               catch(InterruptedException ie){}
        //when waiting is done, return value
        return verde;
    //class that retrieves data and prints it
    //not really necessary here but useful to check that the SynkronisedVektorKlass
    // works
    public class TradHarDataKommit extends Thread
       private SynkroniseradVektorKlass hemtaData;
       public TradHarDataKommit(SynkroniseradVektorKlass hemtaData)
          this.hemtaData=hemtaData;
       public void run()
           System.out.println("Thread two begins");
           System.out.println("data == "+hemtaData.returneraVerde());
           System.out.println("Thread two done");
    //class that communicates with the database and retrieves the data
    public class NyTradKorSQLSats extends Thread
       private String sqlSats;
       private java.util.Timer timer;
       private JLabel label;
       private JFrame ram;
       private SynkroniseradVektorKlass tilldelaData;
       public NyTradKorSQLSats(String sqlSats,java.util.Timer timer,JLabel ,SynkroniseradVektorKlass tilldelaData,JFrame ram)
          this.sqlSats=sqlSats;
          this.timer=timer;
          this.label=label;
          this.tilldelaData=tilldelaData;
          this.ram=ram;
       public void run()
           System.out.println("Thread one begins...");
           //executes the sql query and retrieve data
           tilldelaData.settVerde(klient.korKlient(sqlSats));
           //end the timer that updates the JLabel
           timer.cancel();
           label.setText("");
           ram.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
           System.out.println("Thread one done...");
    //in actionPerformed
    java.util.Timer timer = new java.util.Timer();
    //boolean used to show when execution is done          
    boolean sokningInteFerdig=true;
    //class that holds a value retrieved from database and make sure that
    //everything is synchronized
    SynkroniseradVektorKlass dataFranSokning = new SynkroniseradVektorKlass(sokningInteFerdig);
    //class that retrieves information from dataFranSokning     
    TradHarDataKommit skrivUtData = new TradHarDataKommit(dataFranSokning);
    //class that executes sql query, with arguments sql, a timer that updates
    //the JLabel,the JLabel,the dataholding class, and a JFrame     
    NyTradKorSQLSats korTrad = new NyTradKorSQLSats("1Select namn from kundregister where kundnr=1",timer,statusRad,dataFranSokning,this);
    //a TimerTask class that updates the JLabel               
    TimerStatusRad task1 = new TimerStatusRad(statusRad,"Searching...",this);
    TimerStatusRad task2 = new TimerStatusRad(statusRad," ",this);
    //starts timer task1 directly and restarts every second
    timer.schedule(task1,0,1000);
    //starts timer task 2 after a second and restarts every second after     
    timer.schedule(task2,1000,1000);
    //set the sqlthread to daemon
    korTrad.setDaemon(true);
    //starts the thread                         
    korTrad.start();
    //I would like that the program halts here until korTrad is done
    //because the data retrieved are to be used further in the program
    //There is no point in using join(); because this would halt the update of the guiif anyone got any ideas how to solve this please help me
    ps. sorry about my english, its not my native language

    Was not able to review all of your code. But take a look at wait() and update() methods - they should solve what you need.
    Denis Krukovsky
    http://dotuseful.sourceforge.net/

  • Thread.start vs SwingUtilities - GUI update

    Hi
    how come the GUI is not updated ( moving label ) using
            SwingUtilities.invokeAndWait(new AThread(label));when I use
            Thread t = new Thread(new AThread(label));
            t.start();the GUI is updated
    Thanks
    public class Test {
        public static void main(String[] args) throws Exception {
            JFrame frame = new JFrame("test");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLayout(new FlowLayout());
            frame.setSize(400, 400);
            frame.setVisible(true);
            JLabel label = new JLabel("000000");
            frame.getContentPane().add(label);
            //SwingUtilities.invokeLater(new AThread(label));
            SwingUtilities.invokeAndWait(new AThread(label));
            //Thread t = new Thread(new AThread(label));
            //t.start();
    class AThread implements Runnable {
        private JLabel alabel;
        public AThread(JLabel alabel) {
            this.alabel = alabel;
        public void run() {
            try {
                while (alabel.getY() < 200) {
                    Thread.sleep(50);
                    Point p = alabel.getLocation();
                    double x = p.getX();
                    double y = p.getY();
                    alabel.setLocation((int) x + 1, (int) y + 1);
                    System.out.println( alabel.getY());
            } catch (InterruptedException e) {
            System.out.println("done");
    }Edited by: sc3sc3 on Feb 8, 2008 10:06 AM

    The invokeAndWait call waits for the thread to finish. So until that thread finishes, the event dispatch thread (EDT) cannot update and so you never see any changes to the label until the thread is complete.
    In the second case, the EDT can incorrectly sporadically update the label because they are running concurrently. I say incorrectly here because you are modifying the label outside of the EDT which is an error and can have various unforeseen consequences. If you want to modify the label, you should queue another runnable to the EDT so the update can occur there. Something like
    import java.awt.*;
    import javax.swing.*;
    public class TestLabelEdt {
        public static void main(String[] args) throws Exception {
            JFrame frame = new JFrame("test");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLayout(new FlowLayout());
            frame.setSize(400, 400);
            frame.setVisible(true);
            JLabel label = new JLabel("000000");
            frame.getContentPane().add(label);
            //SwingUtilities.invokeLater(new AThread(label));
            //SwingUtilities.invokeAndWait(new AThread(label));
            Thread t = new Thread(new AThread(label));
            t.start();
    class AThread implements Runnable {
        private JLabel alabel;
        public AThread(JLabel alabel) {
            this.alabel = alabel;
        public void run() {
            try {
                while (alabel.getY() < 200) {
                    Thread.sleep(50);
                    Point p = alabel.getLocation();
                    final double x = p.getX();
                    final double y = p.getY();
                    Runnable doRun = new Runnable() {
                        public void run() {
                            alabel.setLocation((int) x + 1, (int) y + 1);
                            System.out.println( alabel.getY());                              
                    SwingUtilities.invokeLater( doRun );               
            } catch (InterruptedException e) {
            System.out.println("done");
    }

  • Implementing sockets and threads in a jframe gui program

    Hi, I am trying to find a solution to a problem I am having designing my instant messenger application.
    I am creating listening sockets and threads for each client logged into the system. i want to know if there is a way to listen to other clients request from the main gui and then if another client tries to establish a connection with me for example, a thread is created for that client and then my chat gui opens automatically has soon has the other client sends his or hers first text message to me.
    I am relatively new at socket programming has I am currently studying along this area. I know how to create threads and sockets but I am having trouble finding out a solution to my problem. Here is the code that I have done so far for the listening method from my main gui, and the thread class of what I have done so far.
    listening socket:
         private void listeningSocket()
                ServerSocket serverSocket = null;
                boolean listening = true;
                try
                    //listen in port 4444;
                    serverSocket = new ServerSocket(4444);
                catch(IOException x)
                    JOptionPane.showMessageDialog(null, "cannot listen to port 4444", null, JOptionPane.ERROR_MESSAGE);
                while(listening)
                    client_thread w;
                    try
                       w = new client_thread(serverSocket.accept(), jTextArea1);
                       Thread t = new Thread(w);
                       t.start();
                    catch(IOException x)
                         JOptionPane.showMessageDialog(null, "error, cannot start new thread", null, JOptionPane.ERROR_MESSAGE);
            }thread class:
    import java.io.*;
    import java.net.*;
    import javax.swing.*;
    import java.sql.*;
    import java.awt.event.*;
    * @author jonathan
    public class client_thread extends Thread
         //define new socket object
        private Socket client_user = null;
        private JTextArea textArea;
        public client_thread(Socket client_user, JTextArea textArea)
            this.client_user = client_user;
            this.textArea = textArea;
        public void run()
            BufferedReader in = null;
            PrintWriter out = null;
            String error = "error has occured, messege was not sent";
            String messege = null;
             try
                //create input and output streams
                in = new BufferedReader(new InputStreamReader (client_user.getInputStream()));
                out = new PrintWriter(client_user.getOutputStream(), true);
                while(true)
                   //read messege sent by user
                   messege = in.readLine();
                    //display messege in textfield
                   out.println(messege);
                   textArea.append(messege);
            catch (IOException e)
                //error messege
                JOptionPane.showMessageDialog(null, error, null, JOptionPane.ERROR_MESSAGE);
    }

    Seems like all you need to do is create a new dialog for each socket that is established. Your current design looks like it will attempt to use the same textarea for all the sockets.
    I would say in your thread class do the following:
    MyConversationDialog dialog = new MyConversationDialog();
    while(true)
                   //read messege sent by user
                   messege = in.readLine();
                    //display messege in textfield
                   out.println(messege);
                   dialog.setVisible (true);
                   dialog.addMessage (message);
                }

  • TS2774 hi i have done the settings that mentioned in apple support threads but it wont work for me i am using BSNL cellone SIM and activated 3G too but unfortunately internet is not connecting but my facebook is updated and also showing the data statistic

    hi i have done the settings that mentioned in apple support threads but it wont work for me i am using BSNL cellone SIM and activated 3G too but unfortunately internet is not connecting but my facebook is updated and also showing the data statistics

    They are not a supported carrier. You'll have to take it up with them.

  • Making GUI update at correct time

    I'm creating an engine that can display experimental stimuli for my lab working with kids with reading disabilities. I have a GUI which can display the next stimuli in the test. Once the stimuli are displayed, the program does nothing until the user presses a button and a key event is called.
    I'm now trying to get my GUI to play recorded words to the user. Because it's the responsibility of the GUI to display stimuli, the GUI will be the one playing the sound (even though that's not typically thought of as a GUI responsibility). Unfortunately, even though the commands to update the GUI display are placed before the command to play the sound, the GUI does not update until it has finished playing the sound.
    This has nothing to do with the sound itself: if I replace the clip.play() line with a loop that wastes time and spins around for five seconds, the GUI does not update for those five seconds.
    The GUI updates itself the moment the program leaves the setStimuli() method. How can I get it to update itself before then? Commands such as this.repaint() don't appear to work.
    Any thoughts on how to get the GUI to update itself before exiting the method?
    public class TestingEngine {
    public void setStimuli(String[] values) {
       gui.setStimuli(values);
    public class GUI extends javax.swing.JFrame {
    public void setStimuli(String[] values){
           switch (testType){
             case SOUND:
                   String soundImageFile = "Headphones.jpg";
                   ImageIcon soundImage = new ImageIcon(soundImageFile);
                   JLabel soundImageLabel = new JLabel(soundImage);
                   SoundImageJPanel.removeAll();
                   SoundImageJPanel.repaint();
                   SoundImageJPanel.add(soundImageLabel);
                   soundImageLabel.setVisible(true);
                   label_S_Option1.setText(values[1]);
                   label_S_Option2.setText(values[2]);           // <-- nothing has updated yet
                   SoundClip clip = new SoundClip(values[0]);
                   if (clip.isInitialized())                     // <-- this section could also be replaced
                       clip.play();                             // by a time-wasting loop
                   break;
        }      // <-- once program reaches here, GUI finally updates
    }

    Ok, so just for the sake of it, I tried using the Timer method as suggested in the thread you pointed me to. This doesn't do anything, but thinking about it, I don't see why it would. Timer calls repaint() every 50 ms, but, after all, the setStimuli() method also called repaint() before playing the soundclip. If the original call of repaint() didn't do anything, then I don't think that calling it more often would.
    Is there another command that I should be using? In other words, how can I tell my JFrame and JLabels to "UPDATE RIGHT NOW, NOT IN A MINUTE!"? (It would be easier if I were the JFrame's mother...)
    Current version of code, with Timer class:
    public class GUI extends javax.swing.JFrame {
       private Thread refresh;
       public GUI() {
           initComponents();
           refresh = new Timer(this);
           refresh.start();
       public void setStimuli(String[] values){
           switch (testType){
             case SOUND:
                   String soundImageFile = "Headphones.jpg";
                   ImageIcon soundImage = new ImageIcon(soundImageFile);
                   JLabel soundImageLabel = new JLabel(soundImage);
                   SoundImageJPanel.removeAll();
                   SoundImageJPanel.repaint();
                   SoundImageJPanel.add(soundImageLabel);
                   soundImageLabel.setVisible(true);
                   label_S_Option1.setText(values[1]);
                   label_S_Option2.setText(values[2]);           // <-- nothing has updated yet
                   SoundClip clip = new SoundClip(values[0]);
                   if (clip.isInitialized())                     // <-- this section could also be replaced
                       clip.play();                              // by a time-wasting loop (same problem)
                   break;
       }      // <-- once program reaches here, GUI finally updates
       public void callback(){
           repaint();
    class Timer extends Thread
         private Gui parent;
         public Timer(Gui g) {
              parent = g;
         synchronized public void run() {
              while(true) {
                   try{
                       wait(50);
                   }catch(InterruptedException ie) {return;}
                   parent.callBack();
    }

  • Suspending GUI update

    I have an app which runs a background thread. While the thread is running I want to disable various clickable GUI elements. My problem is that the elements all disable rather slowly and it looks funny (they don't all disable simultaneously). Is there a way I can suspend GUI update, set all my elements to disabled, and then force the GUI to update them all at once?

    Well I'm actually doing this:
    @Action
    public Task runSimulation() {
        SimulationTask simulationTask = new SimulationTask();
        // some code to init my Task
        for (JPanel panel : playerPanels) { // playerPanels is a JPanel[10]
            panel.setEnabled(false);
        return simulationTask;
    }So the code to disable the panels runs before the task is even started. I tried adding the disabling code to the doInBackground method of my TaskListener attached to simulationTask but the delay is worse. The panels disable almost simultaneously using the above method but are out of sync just enough to make everything look amateurish and poorly done.
    As a side note this is written using the swing application framework in netbeans. The runSimulation method is attached to a button that runs a pretty CPU intensive task in the background.

  • Lenovo System Update and Lenovo Support RSS Feed (X60)

    Okay. I got Lenovo System Update (version 5, for Windows 7) and it did not offer me any Critical updates. Only Recommended and Optional ones. If it ain't broke, don't fix it, so I don't want to install Recommended and Optional updates, only the Critical ones if there is any.
    On the other hand I also have the Lenovo Support RSS Feed. But they bring me to dead links. For my X60 the two drivers in my RSS Feed are
    ThinkVantage Access Connections patch for Access Connections Version 5.95 for Windows 7 (32-bit, 64-...
    Patch module for Power Manager for Windows 7 (32-bit, 64-bit), Vista (32-bit, 64-bit) - ThinkPad -
    Both are totally dead links.
    The tricky part is that there is absolutely no correlation between the two: totally different drivers in the System Update and the RSS Feed.

    Hello both,
    SU has been discontinued because old SU version wouldn´t work with SP2.
    Refer to this thread in at the ThinkVantage board regarding this situation and possible solutions
    and ask your questions there, please.
    Thread locked.
    Follow @LenovoForums on Twitter! Try the forum search, before first posting: Forum Search Option
    Please insert your type, model (not S/N) number and used OS in your posts.
    I´m a volunteer here using New X1 Carbon, ThinkPad Yoga, Yoga 11s, Yoga 13, T430s,T510, X220t, IdeaCentre B540.
    TIP: If your computer runs satisfactorily now, it may not be necessary to update the system.
     English Community       Deutsche Community       Comunidad en Español

  • Latest firmware update and more problems with 30" external displays?

    Hello,
    New macbook pro user since a few weeks, so first post here.
    I'm aware of various issues with the displayport to dual-dvi adapter, especially with 30" 2560x1600 monitors. All threads I've found on are 1-3 years old though.
    I got my 17" macbook pro a few weeks ago and I've had very few problems running my 30" dell 3008wfp as external screen. I had issues at times getting it to work after boot up, with blackout and various errors (problems I've read about in older threads), but once stable it would work without issues for days.
    Yesterday the macbook found and installed a new firmware update, and wow, all **** broke lose. The external screen won't run at 2650x1600 for more than a minute before blacking out or suffering major graphical errors. Ironically one of the key points in the firmware update is better support for external monitors...
    It will run nice and stable mirrored at 1920x1200, but not at 2650x1600.
    Is anyone else in a similar situation after the latest update?

    Hello,
    New macbook pro user since a few weeks, so first post here.
    I'm aware of various issues with the displayport to dual-dvi adapter, especially with 30" 2560x1600 monitors. All threads I've found on are 1-3 years old though.
    I got my 17" macbook pro a few weeks ago and I've had very few problems running my 30" dell 3008wfp as external screen. I had issues at times getting it to work after boot up, with blackout and various errors (problems I've read about in older threads), but once stable it would work without issues for days.
    Yesterday the macbook found and installed a new firmware update, and wow, all **** broke lose. The external screen won't run at 2650x1600 for more than a minute before blacking out or suffering major graphical errors. Ironically one of the key points in the firmware update is better support for external monitors...
    It will run nice and stable mirrored at 1920x1200, but not at 2650x1600.
    Is anyone else in a similar situation after the latest update?

  • HT1725 One of my apps wont update and says installing on my phone. I get a message that says to check itune store but its not telling me anything

    One of my apps wont update and says installing on my phone. I get a message on my phone to check itunes store for the problem but I cant find anything in itunes store to help me

    Hi...
    I replied to you here > https://discussions.apple.com/thread/3851006?tstart=0

  • I have a iPhone 4 s I did the software update ages ago and lost my camera roll then did the update and they all came back then on Christmas eve they have all gone !!

    THis is now the 5 th time I have written this !!!
    I have a iPhone  4s i did the software update ages ago and lost the camera roll .....then I did the update and all my photos returned ...now on Christmas eve they all dissapeared
    I now just albums .... All Photos  but that only has 77 photos ,  and that's it over 1000 photos have just gone ??
    PLease help me !!

    Why should we care how many times you've written this?  Are you making multiple threads?  Are they being deleted by the Hosts?
    Did you make a backup of your iPhone before you updated the iOS?
    Did you import the photos to your computer?
    Were the photos in the Camera Roll, Photo Stream or synced iTunes albums?

  • My Firefox doesn't recognize it being upgraded. It still thinks that its version is 3.5 even though I've been updating and upgrading it regularly, and now have v9.0.1. installed. Why does this happen?

    I've tried everything possible to sort this out myself. Nothing helps. Installing, reinstalling, upgrading... (even disabling all the add-ons) ...my Firefox still believes that it hasn't been updated since v 3.5.5 (even though in About Firefox the version states to be 9.0.1). Here is the picture evidence of the problem:
    [http://img684.imageshack.us/img684/676/firefoxupdateissue.jpg Picture showing Firefox version in Help menu as opposed to version recognised here]
    Please help, this is a major issue for me. I really like Firefox and I'd hate to be forced to install some other browser.
    Thanks for any help solving this issue.

    Your user agent is '''corrupted by Fast Browser Search (FBSMTWB) '''and that identifies you as '''Firefox/3.5.5'''
    see your user agent:
    Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.1.5) Gecko/20091102 '''Firefox/3.5.5''' GTB5 (.NET CLR 3.5.30729) '''FBSMTWB''' TTLSkins
    you must [https://support.mozilla.org/en-US/kb/Websites%20or%20add-ons%20incorrectly%20report%20incompatible%20browser#w_reset-your-user-agent reset user agent]
    see also these pages and threads about Fast Browser Search (FBSMTWB in the user agent).
    http://help.fastbrowsersearch.com/
    http://www.pccybertek.com/2009/05/remove-fast-browser-search
    thank you
    Please mark "Solved" the answer that really solve the problem, to help others with a similar problem.

  • Error message with offer to download the 4.1.B.0.587 update and note: "installation not possible" (because it's already there) cannot partition SD card

    Hi - Recently I put the latest update on my LT15i (4.1.B.0.587), after this I rooted the phone, and everything seemed okay. But since then I keep getting an error message with an offer to download the 4.1.B.0.587 update and the note: "installation not possible" (because it's already there). The news line on top shows a red exclamation mark all the time. It seems to me that it is due to this error that I cannot partition my SD card. Does anybody have an idea how to fix that? Thanks much in advance, and happy holidays - nerissa

    Moved thread to Android development.
     - Official Sony Xperia Support Staff
    If you're new to our forums make sure that you have read our Discussion guidelines.
    If you want to get in touch with the local support team for your country please visit our contact page.

  • Update and restore error messages on iPod touch 2nd Gen

    Hi folks I'm searching for a solution for the error message I have received when i connected my Ipod touch to my PC. I got notification that there was an update for Itunes available and would i like to download, i chose not to at this time as all i wanted to do was quickly put some music onto the ipod touch. I also had a notification that there was new software updates for the ipod itself, being how have had some of the issues this update was supposed to fix I clicked to download update and install.
    since then i have had an error message telling me i now had to Restore my ipod, As it is in recovery mode due to an error occuring during software update. I didnt want to do this as i have not synced the Ipod to the PC in quite some time and had purchased content via itunes and appstore on the ipod itself and was affraid i'd lose all this.
    I realised i had to restore to sort the issue out and have been trying in vain to restore the ipod for 2 days now. Every 'fix' or 'solution' on the help page has failed so far. the error message help page is here:
    http://support.apple.com/kb/TS1275
    i have done everything on that list and still the issue wont go away, the number in brackets relating to the error message i receive is (14) every time.
    I have a log of the last attempt to restore and failing which i copied before sending the information off to Apple. If anyone can help i'll be eternally grateful.
    my ipod is a 16gig 2nd gen touch and obviously since its somehow in recovery mode i cant use it at all, and all i have on the screen is the usb cable and the itunes icon.

    ok update:
    I was looking at other threads that had similar issues as I'm having, I decided to dig in the PC a bit, i went to My computer/C drive/Documents and settings/<user name>/Application Data/Apple Computer/iTunes/iPod Software updates
    to get the Application Data folder to become visible goto the Tools heading and select Folder Options, goto the View tab, then click the radio button that has "Show hidden files and folders" next to it, click apply, click ok. The application Data folder now appears in the directory.
    I then Deleted everything inside the iPod Software updates folder.
    Turned off my Anti virus and went to http://www.felixbruns.de/iPod/firmware/
    I selected my iPod and downloaded the update to my pc. Opened iTunes and shift clicked restore, i found the recently downloaded update on my desktop and installed it. Now my iPod has finally restored! success! yes!!
    so now that we have got the iPod working again i need to know, since it is totally blank now what can i do about retrieving the songs, movies, apps and games i have paid for via the ipod touch itself? I have spent a lot of money on these and would like them back. Any ideas folks?
    I can see my purchase history when im in iTunes i goto the Store tab and select my account. its all listed there but no option to re-download the content.
    Thanks for any help on the matter

  • When trying to install ios5 on my iphone, I get error message that there is a problem with backup, if I continue with update all data on my phone will deleted. I cancelled the update and phone is fine. Anyone know the cause?

    When trying to install io5 on my iphone4 I get an error message during the updtae that there is a problem with backup and if I continue with the update, all the data will be deleted from my phone. I cancelled the update and my phone is fne. Has anyone else experience this? What is the cause/solution?
    Yhanks!

    DON'T DO IT! Read the threads ... there is a MAJOR problem with updating iPhones 3GS/4 to iOS 5.
    Take it to the Apple store and ask them to do it.
    I repeat: DON'T DO IT YOURSELF.
    (Voice of experience.)

Maybe you are looking for