Solved

how to extract url information

Posted on 2008-09-29
9
222 Views
Last Modified: 2013-11-23
0
Comment
Question by:tdavidson_9
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 4
9 Comments
 
LVL 60

Expert Comment

by:Kevin Cross
ID: 22602604
For setting the content to an argument, you should check that it has a value first and then pass to your JTextArea through parameters of the methods you use to create the GUI or through an instance variable.

Hopefully the code snippet helps explain it.

P.S. In the future you can just created a related question and the expert who helped you will get an e-mail but additionally other experts will be able to assist; therefore, you don't need to address question directly to a specific expert. :)
public static void main(String[] args) {
    String displayAreaText = "";
    
    if (args.length >= 1) { // you may want this to be exactly 1 (==)
        displayAreaText = args[0];
    }
 
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            createAndShowGUI(displayAreaText);
        }
    });
}
 
// Then you will need to change the signature of your methods like this
private static void createAndShowGUI(String displayAreaText) 
public JPanel createContentPane (String displayAreaText)
 
// And pass the displayAreaText down to the JTextArea
// OR just change the createAndShowGUI as shown above and add this line
Display display = new Display();
display.content = displayAreaText; // <--- this is new line
frame.setContentPane(display.createContentPane());

Open in new window

0
 

Author Comment

by:tdavidson_9
ID: 22602709
It didn't work!
My eclipse complaint: Cannot refer to a non-final variable content inside an inner class defined in a different method.
0
 
LVL 60

Expert Comment

by:Kevin Cross
ID: 22602726
Sorry, wasn't paying attention to the invokeLater statement itself.
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:tdavidson_9
ID: 22602784
Then how to make it work? Is it possible to do it?
0
 
LVL 60

Expert Comment

by:Kevin Cross
ID: 22606104
You could do it making the following alterations.  May be another way to accomplish, but this is what I know off top of my head.

(Display class implements Runnable)
private void createAndShowGUI() {
        JFrame.setDefaultLookAndFeelDecorated(true);
        JFrame frame = new JFrame("Request message cookies");
        frame.setContentPane(createContentPane());
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(800, 600);
        frame.setVisible(true);
    }
 
    public static void main(String[] args) {
        String displayAreaText = "";
 
        if (args.length >= 1) { 
            displayAreaText = args[0];
        }
 
        SwingUtilities.invokeLater(new Display(displayAreaText));
    }
 
    public Display(String content) {
        this.content = content;
    }
 
    @Override
    public void run() {
        createAndShowGUI();
    }

Open in new window

0
 

Author Comment

by:tdavidson_9
ID: 22606928
// this way also works

   public static void main(String[] args) {

        if (args.length == 1){
            String content = args[0];
            createAndShowGUI(displayAreaText);
        }
        else
              System.exit(0);
   }
   private static void createAndShowGUI(String text) {
    ...
   public JPanel createContentPane (String text){
    ...
// I was wondering what is the risk for the program to invoke the object
// directly without using the code below!
//        SwingUtilities.invokeLater(new Runnable() {
//            public void run() {
//                createAndShowGUI();
//            }
//        });  
0
 

Author Comment

by:tdavidson_9
ID: 22607393
I also try your method, it does not compile at all :(
0
 
LVL 60

Accepted Solution

by:
Kevin Cross earned 250 total points
ID: 22607569
Your method does work if you don't need to use the invokeLater of Swing as you had previously.  I stuck with that since you had it in original.

As far as my method, I tested it before posting and it will work if you change code as shown and add Runnable to the implements listing of Display as indicated in my comment.  Sorry if that wasn't clear.

Regards,
Kevin
0
 
LVL 60

Expert Comment

by:Kevin Cross
ID: 22607576
This is how mine is defined:
public class Display implements ActionListener, Runnable
0

Featured Post

What Is Transaction Monitoring and who needs it?

Synthetic Transaction Monitoring that you need for the day to day, which ensures your business website keeps running optimally, and that there is no downtime to impact your customer experience.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Programmer's Notepad is, one of the best free text editing tools available, simply because the developers appear to have second-guessed every weird problem or issue a programmer is likely to run into. One of these problems is selecting and deleti…
Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…
The viewer will learn how to implement Singleton Design Pattern in Java.

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question