mardi 30 juin 2015

How can I check if this check box is enabled from another method in Java?

What I am trying to do is check if a check box is enabled from another method that is also running on another thread. I am fairly new to Java so I apologise in advanced if my code isn't how Java is usually written (or if it is written badly).

So I've made a method that created a iframe then adds a check box to it. I've removed the part which creates the jframe just to keep my code minimal - you can see it below:

private void initialize() {
    chckbxEnabled.setHorizontalAlignment(SwingConstants.LEFT);
    chckbxEnabled.setForeground(Color.WHITE);
    chckbxEnabled.setBounds(98, 123, 81, 23);
    frame.getContentPane().add(chckbxEnabled);
}

I've then created a new method in a new thread and called it from another method which I haven't shown here.

static Thread thread = new Thread(new Runnable() {
public void getPing() throws IOException, InterruptedException {
    while (true) {
        System.out.println(chckbxEnabled.isEnabled());
        if(chckbxEnabled.isEnabled()) {] // Part I am having trouble with
            String apiKey = "exmapleApiKey";
            URL url = new URL("http://ift.tt/1C4JzZI"+apiKey);
            URLConnection yc = url.openConnection();
            BufferedReader in = new BufferedReader(
                                    new InputStreamReader(
                                    yc.getInputStream()));
            String inputLine;
            inputLine = in.readLine();
            }
        Thread.sleep(1000);
    }
}
   public void run() {     
       try {
            getPing();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
       }
    });
}

As you can see I am trying to access chckbxEnabled.isEnabled(). This worked because just after I made my main class I added private static JCheckBox chckbxEnabled = new JCheckBox("Enabled");. So I can access it but it always returns true when I print it even though the check box is sometimes checked.

So my question is what is a better way of doing this as I expect that way I have experimented with is 'messy' and not the way it should be done?




Aucun commentaire:

Enregistrer un commentaire