Mutlithreading with GUI problem

hey guys,
I was working on some Socket programming assignment and encountered an intersting problem.
i am using Swing for GUI and Threads to communicate with clients.
My server GUi has a JButton("Start Server") to trigger the Server. or we can say.. it starts accepting connection( SocketObj = ServerSocketObj.accept() )
problem:
as soon as i press the only Button(i.e. StartServer Button) on my Server GUI. whole GUI freezes!
but Server is working... all updates on GUI are missing.. cant repaint components, etc. neither WindowClosing event , setDefaultCloseOperation()) is working.
i did some research.. found that swing components are not thread safe,
also found some close answers,, along the lines of.. Event Dispatch Thread, SwingUtilities.invokeLater(Runnable), SwingWorker class , but neither work or maybe i did not implement them properly..
Attachment contains my code for:
Server.java : Server class conatins main()
ServerGUI.java : gui for server.. called from Server Class
ClientHandler.java : Thread for handling clients.. also called from Serve class
Cleint.java : simple client to connect to server at localhost
Any sort of help would be highly obliged.
thanks in advance.
- Ravi

here is the code...
Server.java
import java.net.*;
import java.io.*;
public class Server {
    private ServerSocket ss;
    private Socket sc;
    public ServerSocket getSs() {
        return ss;
    public void setSs(ServerSocket ss) {
        this.ss = ss;
    public Socket getSc() {
        return sc;
    public void setSc(Socket sc) {
        this.sc = sc;
    public Server() {
        try{
        ss = new ServerSocket(4000);
        }catch(IOException e){e.printStackTrace();}
        startGUI();
    public void startGUI()
        new ServerGUI(this);
    public void getConnection()
        int i = 1;
        try {
            Socket sc = getSc();
            while (true) {
                sc = getSs().accept();
                Thread t = new Thread(new ClientHandler(sc,i));
                t.start();
                System.out.println("got client " + i);
                i++;
        } catch (IOException e) {
            e.printStackTrace();
    public static void main(String[] args) {
        new Server();
}ServerGUI.java
import java.net.*;
import java.io.*;
public class ServerGUI extends javax.swing.JFrame {
     private javax.swing.JButton jButton1;
    Server m;
    public ServerGUI(Server m) {
        initComponents();
        this.m=m;
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    private void initComponents() {
        jButton1 = new javax.swing.JButton();
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jButton1.setText("jButton1");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(178, Short.MAX_VALUE)
                .addComponent(jButton1)
                .addGap(147, 147, 147))
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(93, 93, 93)
                .addComponent(jButton1)
                .addContainerGap(184, Short.MAX_VALUE))
        pack();
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        m.getConnection();
}ClientHandler.java
import java.net.*;
public class ClientHandler implements Runnable {
    Socket sock;
    int n;
    public ClientHandler(Socket s, int n) {
        sock = s;
        this.n = n;
    public void run() {
        while (true) {
            System.out.println("Client Thread: " + n);
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
}Client.java
import java.net.*;
import java.io.*;
public class Client {
    Socket sc;
    public Client() {
        try{
        sc=new Socket("127.0.0.1",4000);
        System.out.println("got server");
        }catch(UnknownHostException e){e.printStackTrace();}
        catch(IOException e){e.printStackTrace();}
    public static void main(String args[])
        new Client();
}

Similar Messages

  • Mutlithreading with GUI

    hey guys,
    I was working on some Socket programming assignment and encountered an intersting problem.
    i am using Swing for GUI and Threads to communicate with clients.
    My server GUi has a JButton("Start Server") to trigger the Server. or we can say.. it starts accepting connection( SocketObj = ServerSocketObj.accept() )
    problem:
    as soon as i press the only Button(i.e. StartServer Button) on my Server GUI. whole GUI freezes!
    but Server is working... all updates on GUI are missing.. cant repaint components, etc. neither WindowClosing event , setDefaultCloseOperation()) is working.
    i did some research.. found that swing components are not thread safe,
    also found some close answers,, along the lines of.. Event Dispatch Thread, SwingUtilities.invokeLater(Runnable), SwingWorker class , but neither work or maybe i did not implement them properly..
    Attachment contains my code for:
    Server.java : Server class conatins main()
    ServerGUI.java : gui for server.. called from Server Class
    ClientHandler.java : Thread for handling clients.. also called from Serve class
    Cleint.java : simple client to connect to server at localhost
    Any sort of help would be highly obliged.
    thanks in advance.
    - Ravi

    Server.java
    import java.net.*;
    import java.io.*;
    public class Server {
        private ServerSocket ss;
        private Socket sc;
        public ServerSocket getSs() {
            return ss;
        public void setSs(ServerSocket ss) {
            this.ss = ss;
        public Socket getSc() {
            return sc;
        public void setSc(Socket sc) {
            this.sc = sc;
        public Server() {
            try{
            ss = new ServerSocket(4000);
            }catch(IOException e){e.printStackTrace();}
            startGUI();
        public void startGUI()
            new ServerGUI(this);
        public void getConnection()
            int i = 1;
            try {
                Socket sc = getSc();
                while (true) {
                    sc = getSs().accept();
                    Thread t = new Thread(new ClientHandler(sc,i));
                    t.start();
                    System.out.println("got client " + i);
                    i++;
            } catch (IOException e) {
                e.printStackTrace();
        public static void main(String[] args) {
            new Server();
    }ServerGUI.java
    import java.net.*;
    import java.io.*;
    public class ServerGUI extends javax.swing.JFrame {
         private javax.swing.JButton jButton1;
        Server m;
        public ServerGUI(Server m) {
            initComponents();
            this.m=m;
            setVisible(true);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
        private void initComponents() {
            jButton1 = new javax.swing.JButton();
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            jButton1.setText("jButton1");
            jButton1.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    jButton1ActionPerformed(evt);
            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                    .addContainerGap(178, Short.MAX_VALUE)
                    .addComponent(jButton1)
                    .addGap(147, 147, 147))
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(93, 93, 93)
                    .addComponent(jButton1)
                    .addContainerGap(184, Short.MAX_VALUE))
            pack();
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
            m.getConnection();
    }ClientHandler.java
    import java.net.*;
    public class ClientHandler implements Runnable {
        Socket sock;
        int n;
        public ClientHandler(Socket s, int n) {
            sock = s;
            this.n = n;
        public void run() {
            while (true) {
                System.out.println("Client Thread: " + n);
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
    }Client.java
    import java.net.*;
    import java.io.*;
    public class Client {
        Socket sc;
        public Client() {
            try{
            sc=new Socket("127.0.0.1",4000);
            System.out.println("got server");
            }catch(UnknownHostException e){e.printStackTrace();}
            catch(IOException e){e.printStackTrace();}
        public static void main(String args[])
            new Client();
    }

  • Problem with GUI in applet

    Hai to all,
    I am having a problem with GUI in applets
    My first class extends a JPanel named A_a
    import javax.swing .*;
    import java.awt.*;
    import java.awt.event.*;
    public class A_a extends JPanel
    JButton jb;
    JTextArea text;
    public A_a()
    setLayout(new FlowLayout());
    jb=new JButton("Click me");
    //add(jb);
    text=new JTextArea(5,20);
    add(text);
    public void text_appendText(String aa)
    System.out.println("I AM IN A_a");
    text.append(aa);
    text.revalidate();
    revalidate();
    /*public static void main(String ags[])
    A_a a = new A_a();
    JFrame frame=new JFrame();
    frame.getContentPane().add(a);
    frame.pack();
    frame.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) { System.exit(0); }
    frame.setSize(200,200);
    frame.show();
    and then I am using other class B_b which is an applet carries a exitsing panel (A_a) inside it .
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class B_b extends JApplet
    public A_a a;
    public void init()
    a=new A_a();
    getContentPane().add(a);
    public void text_appendText(String aa)
    final String aaa =aa;
    new Thread(new Runnable()
    public void run()
    a=new A_a();
    a.setBackground(new java.awt.Color(255,200,200));
    System.out.println("I AM IN B_b");
    a.text.append(aaa);
    a.text.revalidate();
    getContentPane().remove(a);
    resize(500,500);
    }).start();
    and the I am using the second applet C_c in which by performing a button action the old panel A_a should get removed and replace the new panel D_a (which is not here )in the applet B_b with all other components(namely button , text fields etc)
    import javax.swing .*;
    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    import java.util.*;
    public class C_c extends JApplet implements ActionListener
    JButton jbt;
    JTextArea jta;
    public void init()
    getContentPane().setLayout(new FlowLayout());
    jbt=new JButton("Click me");
    jbt.addActionListener(this);
    getContentPane().add(jbt);
    jta=new JTextArea(5,20);
    getContentPane().add(jta);
    public void actionPerformed(ActionEvent ae)
    Enumeration e = getAppletContext().getApplets();
    Applet applets = null;
    while(e.hasMoreElements())
    applets=(Applet)e.nextElement();
    if ( applets instanceof B_b)
    System.out.println("I AM CLASS C_c");
    ((B_b)applets).text_appendText(jta.getText());
    ((B_b)applets).remove());
    ((B_b)applets).getContentPane().add(D_d);
    both the applets C_c and B_b are in same browser page
    How can i achive that pls help .

    Just to make the code readable...
    import javax.swing .*;
    import java.awt.*;
    import java.awt.event.*;
    public class A_a extends JPanel
    JButton jb;
    JTextArea text;
    public A_a()
    setLayout(new FlowLayout());
    jb=new JButton("Click me");
    //add(jb);
    text=new JTextArea(5,20);
    add(text);
    public void text_appendText(String aa)
    System.out.println("I AM IN A_a");
    text.append(aa);
    text.revalidate();
    revalidate();
    /*public static void main(String ags[])
    A_a a = new A_a();
    JFrame frame=new JFrame();
    frame.getContentPane().add(a);
    frame.pack();
    frame.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) { System.exit(0); }
    frame.setSize(200,200);
    frame.show();
    }and then I am using other class B_b which is an applet carries a exitsing panel (A_a) inside it .
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class B_b extends JApplet
    public A_a a;
    public void init()
    a=new A_a();
    getContentPane().add(a);
    public void text_appendText(String aa)
    final String aaa =aa;
    new Thread(new Runnable()
    public void run()
    a=new A_a();
    a.setBackground(new java.awt.Color(255,200,200));
    System.out.println("I AM IN B_b");
    a.text.append(aaa);
    a.text.revalidate();
    getContentPane().remove(a);
    resize(500,500);
    }).start();
    }and the I am using the second applet C_c in which by performing a button action the old panel A_a should get removed and replace the new panel D_a (which is not here )in the applet B_b with all other components(namely button , text fields etc)
    import javax.swing .*;
    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    import java.util.*;
    public class C_c extends JApplet implements ActionListener
    JButton jbt;
    JTextArea jta;
    public void init()
    getContentPane().setLayout(new FlowLayout());
    jbt=new JButton("Click me");
    jbt.addActionListener(this);
    getContentPane().add(jbt);
    jta=new JTextArea(5,20);
    getContentPane().add(jta);
    public void actionPerformed(ActionEvent ae)
    Enumeration e = getAppletContext().getApplets();
    Applet applets = null;
    while(e.hasMoreElements())
    applets=(Applet)e.nextElement();
    if ( applets instanceof B_b)
    System.out.println("I AM CLASS C_c");
    ((B_b)applets).text_appendText(jta.getText());
    ((B_b)applets).remove());
    ((B_b)applets).getContentPane().add(D_d);
    }

  • GUI problem with UNIX

     

    Hi Vasundhara,
    Try grouping the widgets in to a panel.
    Thanks,
    Madhu
    -----Original Message-----
    From: vasundhara [mailto:[email protected]]
    Sent: Wednesday, April 25, 2001 9:15 AM
    To: [email protected]; Joseph Mirwald
    Subject: Re: (forte-users) GUI problem with UNIX
    Hi Joseph
    We are using Forte 3.0 M2 on Solaris 5.8 The problem is with the push
    buttons, After we grid the controls and they look intact in the NT
    environment, but when we open the same window in SOlaris the controls are
    far apart.Do you have any idea about this?
    Regards
    Vasundhara
    ----- Original Message -----
    From: Joseph Mirwald <mailto:[email protected]>
    To: vasundhara <mailto:[email protected]> ;
    [email protected] <mailto:[email protected]>
    Sent: Wednesday, April 25, 2001 10:13 AM
    Subject: Re: (forte-users) GUI problem with UNIX
    Hello vashundara,
    please say which Version of Forte and which kind/version your UNIX OS is.
    There are some problems on AIX V4.3.x (Motif 2.x) and older releasese of
    Forte (up to Forte 3.M.x) and so on and it is necessary to look what it is.
    Maybe it is possible for you to say which widgets are the problem.
    Thanks forward
    Joseph Mirwald
    At 15:25 23.04.01 +0530, vasundhara wrote:
    Hi
    We are facing a strange problem when we try to port our application from NT
    to UNIX. The problem is that the GUI doesnt come properly. As per my
    knowledge gridding all the controls on the GUI shouldnot create this
    problem, but inspite of this we are facing it. Did anyone comeacross this
    situation?
    Thanks in advance
    Regards
    Vasundhara N.C
    Wisor Telecom Pvt Ltd
    Bangalore
    India

  • BEx Analyzer 3.x language problem with GUI 710

    Hi All,
    We are having trouble to login to BEx Analyzer 3.x with GUI 710 with English language, even if we set language as EN in the logon pad by default it is logging into Japanese language. But 7.x Analyser is working fine.
    We have BI 7.0 and BW 3.5 systems. 
    SAP GUI 710 installed with latest available Frontend Patch ( bi710sp10_1000-10004472 , gui710_15-10002995 and bw350gui710_7-10004473 ) and we are using Excel 2003 on XP Professional.
    Installed .Net Framework 2.0, Microsoft office patch - office2003-KB907417
    Your help is very much appreciated.
    Regards,
    MKR

    Hi,
    Are you using different backend systems to connect for 3.x and 7.x? Because the file which prompts the SAP Logon is a common file used by both 3.x and 7.x.It shouldn't behave differently for the same system.
    You can uninstall the SAPGui and Front End patch and then reinstall it.
    The BW 3.5  patch  8  in SAP GUI 7.10 is released to the SMP now and is available for download.
    Rgds,
    Murali

  • RRMXP does not work with GUI 7.20

    Hi Experts,
    I have the following problem. RRMXP does not work with GUI 7.20, BEX 7.0 launches and I have to enter proper user and password. (I get SAP Logon screen with listed systems)
    It works properly with GUI 7.10 and I have not to log into BEX.
    Did anyone encounter such problem? Does anyone know what causes the problem?
    Regards&thanks
    Marek

    Hi,
    RRMXP uses OLE to launch Microsoft Excel together with the SAP BEx add-in. Then it use a macro within BEx to open the workbook. check whether  BEx is not installed properly (run SAPBEXC.XLA under C:Program FilesSAPFrontendBW) or the Excel macro security settings prevent execution of the macros.
    Also Check the below link it has some note to follow
    RRMX and RRMXP does not open the query and workbook
    Regards,
    Satya

  • Gui problem in sol 10 x86

    Hi
    I have installed solaris 10 x86 in my pc having lg monitor standard monitor 2.54 celeron processor , installation was smooth with no problem , after booting iam not able to get gui it is out of range frenquency error in the monitor ,but iam able to work in cli
    will any body to how resolve it
    With rgds
    Tarun

    The trick is to edit your xorg.conf file to only
    include the frequencies your monitor can support.
    Simply comment out the odd ones you know don't seem
    right. To be on the safe side I would set it to
    800x600 60hz just to get it up and then adjust as
    needed.This is exactly my problem also. However, being a newbie to Unix, I am at a loss for where Xorg.conf resides. I also don't seem to have Xsun at the location in the previous message.
    Any ideas? Thanks, Tony

  • Exception errors with GUI

    Hello, I've been working on some Java as part of an engineering project, however my skills with Java aren't great, and my skills with GUI and Networking (which this involves) were only as a user before starting this. A problem that I haven't been able to get around is an exception error when using the actionPerformed method from java.awt.* .
    My goal is to be able to, when a button is pushed, send a UDP packet with the command of the button to another PC. My understanding from tutorials is that actionPerformed is the method to use for when buttons are pushed, however creating or using a DatagramSocket inside this method causes an exception error (java.net.SocketException). Normally I would just tell it to throw exceptions, but when trying it says it cannot overwrite the method. I thought I got around this by placing the socket within another method and calling that instead, but that just simply caused a different exception (java.lang.Exception).
    Any suggestions on how to make this work, or am I using the wrong method for this sort of thing?
    Some code snippets:
    Version 1
    //when the buttons are pushed, this does the actions required.
    public void actionPerformed(ActionEvent evt){     
    DatagramSocket socket = new DatagramSocket(11111); //Error here
    Object source = evt.getSource();
    Version 2
    //when the buttons are pushed, this does the actions required.
    public void actionPerformed(ActionEvent evt){
    Object source = evt.getSource();
    byte[] comm;
    if (source == Identify) {
         command = "identify";
         comm = command.getBytes();
         this.sendIt(command); //Errors here
         version = this.getIt(); //and here
    Version 3
    //when the buttons are pushed, this does the actions required.
    public void actionPerformed(ActionEvent evt)throws Exception { //Error Here
    Object source = evt.getSource();
    Thanks for any help.

    you can use the try-catch clause ...
    like this:
    public void actionPerformed(ActionEvent e){
        try{
             if(e.getSource() == myButton)
                  // your code here...
           catch(Exception err){
                   err.printStackTrace(); // will print the error... read the first line error msg
    }

  • Running console vim with gui support

    I want to run console vim with gui support so that this plugin will be supported.  The current vim package is complied without gui support.  Gui support is in a seperate "gvim" package.
    Is there a elegant way to run console vim with gui support if I have both packages installed?
    Two ways I've thought about but ultimately discarded are:
    1. Alias "vim" to "gvim -v", which runs gvim in the console.  This works under most normal circumstances, but not under others.  First, if running vim through sudo, my plugins and vimrc are loaded, but as the shell is different, the alias doesn't apply.  Second, as vi is vim, running vi invokes this plugin, but vi calls vim, which doesn't have gui support, so the plugin fails.
    2. Fool with the /usr/bin/vim file.  Admittedly i haven't tried this, but obvious problems I see are when the vim package is updated.  What happens then?
    Is there a more elegant way?

    I want to run vim using a plugin that requires vim to be built with gui support.  The way arch's packages are set up, /usr/bin/vim is owned by the "vim" package, which is compiled without gui support.
    The "gvim" package is (obviously) built with gui support.  Gvim can be run in the console with "gvim -v", which would give me a console vim with gui support.  However, I think you'll agree that typing "gvim -v" everytime I mean "vim" is tedious and not a real solution.

  • My iPhone 6 ear speaker is not working properly I couldn't able to hear any thing from ear speaker to lissen I had to put on loud speaker or to use handsfree please help me out with this problem if some body have answer?

    My iPhone 6 ear speaker is not working properly I couldn't able to hear any thing from ear speaker to listen I had to put on loud speaker or to use hands free please help me out with this problem if some body have answer?

    Hi Venkata from NZ,
    If you are having an issue with the speaker on your iPhone, I would suggest that you troubleshoot using the steps in this article - 
    If you hear no sound or distorted sound from your iPhone, iPad, or iPod touch speaker - Apple Support
    Thanks for using Apple Support Communities.
    Best,
    Brett L 

  • HT1386 I just reinstalled my windows operating system and decided to put on windows 8.  After loading all of my music back into a freshly installed itunes, my 4th gen ipod is not recognized by itunes.  My 1st gen ipod nano works with no problem.  Help!

    reinstalled my windows operating system and decided to put on windows 8.  After loading all of my music back into a freshly installed itunes, my 4th gen ipod is not recognized by itunes.  My 1st gen ipod nano works with no problem.  I can eliminate any problems with the cable and connection.
    I've stopped and started the service, and also have performed cold reboots.
    Nothing seems to have helped the situation.
    Help!

    See:
    iOS: Device not recognized in iTunes for Windows
    I would start with
    Removing and reinstalling iTunes, QuickTime, and other software components for Windows Vista or Windows 7
    iTunes for Windows: Device Sync Tests
    Have you tried on another computer to help determine if you have a computer or iPod problem?
    The iPod Classic uses different drivers than the Nano

  • Can anyone help me with a problem i am having with my music on my iPhone 4S. I have put alot of Compilation CDs in my library on iTunes. I download these tracks onto my phone, everything is ok so far. Now, this is what is niggling me and I don.t know how

    Can anyone help me with a problem i am having with my music on my iPhone 4S. I have put alot of Compilation CDs in my library on iTunes. I download these tracks onto my phone, everything is ok so far. Now, this is what is niggling me and I don.t know how to resolve it. This is my problem: 
    Have downloaded for example: Queen – Bohemium Rhapsody from a compilation album as well as a few complete Queen Album CDs into the iTunes library and then put them into playlists,
    When I go onto my phone and select Queen on the MUSIC app using Songs tab at the bottom of the screen it will display all Queen songs and their resective Alum pics, that is all those not in a complilation album, .
    If I know the song title I can select the songs tab and find the song that way,
    I’ve tried fiddling with the settings in the iTunes app by going to ‘get info’ tab and trying to sort the problem out that way but am not having much luck.What I want the phone to do is show, for example all Queens songs including those in compilation albums. Can this be done, would be grateful for any ideas on how it can be done, that is if ic can be done, any ideas
    Thanks for your help

    Try assigning Queen as the Album Artist on the compilations in iTunes on your computer.

  • Monitors with Gradient Problems?

    Hi All,
    Further to my recent post "monitor screen display terrible!"
    Finding a monitor without spending a lot with excellent picture quality is proving differcult! I have tried a Philips 22" monitor Model 220CW9FB and now a BENQ T900HD 18.5 WS monitor all not as sharp with good contrast as my 4 year old G5 iMac. Also has a gradient problem e.g. as you get up off your chair and continue to look down at the screen the white background of the screen turns light blue then darker and colored parts turn white!? Also looking at an angle to the side anything light blue turns a light brown!? Then as I'm viewing something as in Apple Discussions each box of replies alternate white then light blue and so on but looking at normal distant as you type each box are white. You have to lean back in your chair, twice the distance back to actual see the blue box then white box!?
    What's that all about? I have noticed this on the new 20" iMacs too but the three new 24" iMacs are great just like my Rev A G5 iMac of 4 years. Are these inferior screen problems anything to do with them being TN panels as I've just read about?
    I really don't know where to go from here as the screen quality is important. I'm use to the great screen quality of my old G5 iMac and don't want to go down in quality for the sake of moving from a Mac PowerPC to an Intel Core 2 Duo even though I need this for EyeTV hybrid and all the features of iLife '09 etc.
    I don't want to spend a huge amount for an Apple display as I might as well get the entry level 24" iMac. The main reason for not getting the new iMac is I don't like the glossy screen, although today I heard there is an option for a 24" matt screen... any truth in that? Then again will I be able to return the new Mac mini I've only had for 6 days for a 24" iMac?
    Other suggestions seen here is turning my G5 iMac into a stand-a-loan monitor or maybe a 20-year-old CRT 19" TV I have can be used as a monitor and if so what connections are needed? Any ideas on these options?
    So buying the new Mac mini has created a lot of unexpected problems. I thought as asked about before getting it was told any monitor would have the same picture quality as my old G5 iMac, but after the fact found out this is not the case.
    Thanks for the read & any ideas/thoughts much appreciated...

    AFAIK Hmmm Googled "As Far As I Know"... So far I've tried three monitors (all with gradient problem) so it looks like you are correct. I'll try a couple more today as if I need to return my Mac mini with Philips monitor need to do soon for a 24" new iMac even though the Mac mini is not at fault. I'll have to get use to the glossy screen. While writing this an item "iMac or MacBook display too glossy? Apply inexpensive non-glare LCD protective film" has appeared in MacDailyNews.
    http://macdailynews.com/index.php/weblog/comments/20561/
    Thanks for the idea using my G5 as a monitor but maybe quite an involved process?
    It's a shame in all my research before buying a monitor no salesperson mentioned TN display panels. Mind you since the problem no salesperson has said they know about TN display panels or better monitors, just saying any monitor will work with the new Mac mini. Very frustrating!

  • I have a wireless network at home. I run my iphone and ipad on it with no problems. Just purchased a MacBook Pro, and now my wi-fi keeps disconnecting and i get an error message saying another device is using the same IP address. What does all this mean?

    I have a wireless network at home. I run my iphone and ipad on it with no problems. Just purchased a MacBook Pro, and now my wi-fi keeps disconnecting and i get an error message saying another device is using the same IP address. What does all this mean?

    Hello AKCamus
    To give you some ideas of what to do next, I have provided a few articles that will give some troubleshooting Wi-Fi connections and recommended Wi-Fi settings.
    iOS and OS X: Recommended settings for Wi-Fi routers and access points
    http://support.apple.com/kb/HT4199
    iOS: Troubleshooting Wi-Fi networks and connections
    http://support.apple.com/kb/ts1398
    Troubleshooting Wi-Fi issues in OS X Lion and Mac OS X v10.6
    http://support.apple.com/kb/HT4628
    Thanks for using Apple Support Communities.
    Regards,
    -Norm G.

  • I bougt a new  Macbook pro in 02/26/2013, in  11/25/ 2013, my trackpad become bulging, they exchange the trackpad, but not the bulging battery.  I went there yesterday, with different problem, and they said one screw  came off from the  truckpad again!

    I bought a new  Macbook pro in 02/26/2013 from Apple Canadian Ices -003.  Than I could not use it, because  my cursor uncontrollably  was jumping around the screen, I was  resumed my trackpad become bulging, Than on11/25/ 2013 they changed my trackpad for free, because was manufactoring defect,  but not the bulging battery.  They said that is do not needed.  Since that my cursor is quiet often quivering, I think my Macbook has serious  manufacturing defect. But they said no, during a year period I went to  the genius bar at least 15 times, with this and similar problems.   I went there yesterday, with different problems, and they said one of the screws  came off from my   truck pad, therefore they need to fix it and change it.  I said: -  What,  how, what  is the real problem?  A screw does not comes off just like that?  They will change my trackpad again, but not the battery. They said  has to rebuild the operation system, I'm  saving all of my data right now! I would like to exchange the battery too, or maybe get a new Macbook. My Macbook is 2010 China model. How long I would have this trackpad  problem? What are you suggesting?

    If it's a 2010 as you say towards the end of your post, it's out of warranty. The battery isn't covered in that case. Why don't you just buy a new battery if that's your concern? If it's a 2013 as you say up at the top, it shouldn't have a bulging battery. How do you know it does? If it really does, ask for the store manager and explain the problem.

Maybe you are looking for