On Feb 9, 2:33 pm, Knute Johnson <nos...@rabbitbrush.frazmtn.com>
wrote:
phillip.s.pow...@gmail.com wrote:
I am calling validate() on JFrame and revalidate() on JPanel, both to
no avail, although I can confirm that the JComboBox has an incremental
amount of items each time you enter a URL, so the JComboBox is
dynamically increasing, just not appearing except for the first URL it
finds.
--
Knute Johnson
email s/nospam/knute/
I think you are going to need to make a simple test program to show us
(and you) what you are doing. Chances are you've just got something out
of order somewhere.
package com.ppowell.tools.ObjectTools;
import java.io.*;
import java.awt.*;
import java.net.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
public class SimpleBrowser
extends JFrame
implements
Serializable
/**
* {@link java.lang.String} url path
*/
private String urlPath;
/**
* {@link java.net.URL} url
*/
private URL url;
/**
* {@link java.awt.GridBagConstraints}
*/
private GridBagConstraints c;
/**
* {@link javax.swing.JPanel}
*/
private JPanel p1;
/**
* {@link javax.swing.JPanel}
*/
private JPanel p2;
/**
* {@link javax.swing.JButton}
*/
private JButton b;
/**
* {@link org.jdesktop.jdic.browser.WebBrowser}
*/
private WebBrowser browser;
/**
* {@link java.lang.Integer} inputted screen width
*/
protected int screenWidth = 0;
/**
* {@link java.lang.Integer} inputted screen height
*/
protected int screenHeight = 0;
/**
* {@link javax.swing.JComboBox}
*/
protected JComboBox webAddressBox;
/**
* {@link java.util.Vector}
*/
protected Vector<URL> bookmarkURLVector;
/**
* {@link java.util.Vector}
*/
protected Vector<URL> historyURLVector;
/**
* {@link java.lang.Boolean}
*/
private static boolean hasAddedInitialURL = false;
/**
* {@link java.lang.Boolean}
*/
private static boolean hasEnteredAdditionalURL = false;
/**
* A tip of the hat to <a href="http://java.net">JDIC site origin</
a>
* {@link java.lang.String}
*/
protected static final String DEFAULT_URL_PATH = "http://
java.net";
/**
* {@link java.lang.Integer} default screen width
*/
protected static final int DEFAULT_SCREEN_WIDTH =
(int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
/**
* {@link java.lang.Integer} default screen height
*/
protected static final int DEFAULT_SCREEN_HEIGHT =
(int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
/**
* {@link java.lang.Integer} default top panel web address bar
height
*/
protected static final int DEFAULT_WEB_ADDRESS_BAR_HEIGHT = 50;
//-------------------------- --* CONSTRUCTORS *--
----------------------------
/**
* Build default instance
*/
public SimpleBrowser() {
super();
setupSimpleBrowser();
}
//--------------------- --* GETTER/SETTER METHODS *--
--------------------------
/**
* Retrieve {@link #screenHeight}
* @return {@link java.lang.Integer}
*/
private int getScreenHeight() {
return this.screenHeight;
}
/**
* Retrieve {@link #screenWidth}
* @return {@link java.lang.Integer}
*/
private int getScreenWidth() {
return this.screenWidth;
}
/**
* Retrieve {@link #url}
* @return {@link java.net.URL}
*/
private URL getURL() {
return this.url;
}
/**
* Retrieve {@link #urlPath}
* @return {@link java.lang.String}
*/
private String getURLPath() {
return this.urlPath;
}
/**
* Set {@link #screenHeight}
* @param screenHeight {@link java.lang.Integer}
*/
private void setScreenHeight(int screenHeight) {
this.screenHeight = screenHeight;
}
/**
* Set {@link #screenWidth}
* @param screenWidth {@link java.lang.Integer}
*/
private void setScreenWidth(int screenWidth) {
this.screenWidth = screenWidth;
}
/**
* Set {@link #url} using {@link java.lang.String}
* @param urlPath {@link java.lang.String}
*/
private void setURL(String urlPath) {
try {
URL url = new URL(urlPath);
setURL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
/**
* Set {@link #url} using {@link java.net.URL}
* @param url {@link java.net.URL}
*/
private void setURL(URL url) {
this.url = url;
}
/**
* Set {@link #urlPath}
* @param urlPath {@link java.lang.String}
*/
private void setURLPath(String urlPath) {
this.urlPath = urlPath;
}
/**
* Set {@link #browser} with either instantiable {@link
java.net.URL} or with {@link #DEFAULT_URL_PATH}
*/
private void setWebBrowserURL() {
try {
URL url = getURL();
String urlPath = getURLPath();
if (url != null) {
browser.setURL(url);
} else if (urlPath != null && !urlPath.equals("")) {
browser.setURL(new URL(urlPath));
} else {
browser.setURL(new
URL(SimpleBrowser.DEFAULT_URL_PATH));
}
} catch (Exception e) {
e.printStackTrace();
try {
browser.setURL(new
URL(SimpleBrowser.DEFAULT_URL_PATH));
} catch (Exception e2) {
e2.printStackTrace();
return;
}
}
}
//--------------- --* END OF GETTER/SETTER METHODS *--
---------------------
/**
* Add all available panels to the {@link SimpleBrowser} (extends
{@link javax.swing.JFrame})
*/
public void addToFrame() {
setLayout(new GridBagLayout());
c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 0;
c.anchor = GridBagConstraints.NORTHWEST;
add(p1, c);
c.gridx = 0;
c.gridy++;
c.anchor = GridBagConstraints.CENTER;
add(p2, c);
}
/**
* Add {@link java.net.URL} to {@link #historyURLVector}
* @throws java.lang.Exception Thrown if an exception occurs
involving {@link java.net.URL}
*/
protected void addToHistoryURLVector() throws Exception {
URL url;
if (getURL() == null) {
url = new URL(getURLPath());
setURL(url);
} else {
url = getURL();
}
if (historyURLVector != null && !
historyURLVector.contains(url)) {
historyURLVector.add(url);
} else if (historyURLVector == null) {
historyURLVector = new Vector<URL>();
historyURLVector.add(url);
}
}
/**
* Add {@link java.net.URL} to {@link #historyURLVector}
* @param url {@link java.net.URL}
* @throws java.lang.Exception Thrown if an exception occurs with
{@link java.net.URL}
*/
protected void addToHistoryURLVector(URL url) throws Exception {
setURL(url);
addToHistoryURLVector();
}
/**
* Add to {@link javax.swing.JPanel} {@link #p1} and to {@link
#p2}
*/
public void addToPanel() {
layoutTopPanel();
layoutBottomPanel();
}
/**
* Generate value and conditions for {@link #b}
*/
private void generateJButton() {
b = new JButton("Go");
ActionListener listener = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
processURL();
}
};
// WILL ENTER URL ON CTRL-G
b.registerKeyboardAction(listener,
KeyStroke.getKeyStroke(KeyEvent.VK_G, InputEvent.CTRL_MASK, true),
JComponent.WHEN_IN_FOCUSED_WINDOW);
// WILL ENTER URL ON CR
b.registerKeyboardAction(listener,
KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, true),
JComponent.WHEN_IN_FOCUSED_WINDOW);
b.addActionListener(listener);
b.setSelected(false);
// WILL ENTER URL ON ALT-G
b.setMnemonic('G');
b.setFont(SimpleBrowserGlobals.FONT);
}
/**
* Populate {@link #webAddressBox} optionally using {@link
#historyURLVector}
*/
private void generateJComboBox() {
if (SimpleBrowser.hasAddedInitialURL && historyURLVector !=
null && historyURLVector.size() > 0) {
webAddressBox = new JComboBox(historyURLVector);
} else if (SimpleBrowser.hasAddedInitialURL) {
webAddressBox = new JComboBox();
}
if (getScreenWidth() == 0)
setScreenWidth(SimpleBrowser.DEFAULT_SCREEN_WIDTH);
Dimension dim = new Dimension((int)(getScreenWidth() / 1.14),
(int)(SimpleBrowser.DEFAULT_WEB_ADDRESS_BAR_HEIGHT /
2));
webAddressBox.setMaximumSize(dim);
webAddressBox.setPreferredSize(dim);
webAddressBox.setEditable(true);
webAddressBox.setBackground(Color.WHITE);
if (!SimpleBrowser.hasAddedInitialURL &&
SimpleBrowser.hasEnteredAdditionalURL) {
/** For more info <a href="https://lists.xcf.berkeley.edu/
lists/advanced-java/1999-September/000508.html">click here</a> **/
//DefaultComboBoxModel model =
(DefaultComboBoxModel)webAddressBox.getModel();
webAddressBox.setModel(new
DefaultComboBoxModel(historyURLVector));
}
}
/**
* Generate {@link org.jdesktop.jdic.browser.WebBrowser}
*/
private void generateWebBrowser() {
//Use below code to check the status of the navigation
process,
//or register a listener for the notification events.
browser.addWebBrowserListener(
new WebBrowserListener() {
boolean isFirstPage = true;
public void initializationCompleted(WebBrowserEvent event)
{;}
public void downloadStarted(WebBrowserEvent event) {;}
public void downloadCompleted(WebBrowserEvent event) {;}
public void downloadProgress(WebBrowserEvent event) {;}
public void downloadError(WebBrowserEvent event) {;}
public void documentCompleted(WebBrowserEvent event) {;}
public void titleChange(WebBrowserEvent event) {;}
public void statusTextChange(WebBrowserEvent event) {;}
public void windowClose(WebBrowserEvent event) {;}
});
setWebBrowserURL();
}
/**
* Initialize components
*/
private void initComponents() {
setTitle(myName);
if (getScreenWidth() == 0)
setScreenWidth(SimpleBrowser.DEFAULT_SCREEN_WIDTH);
generateJComboBox();
generateJButton();
p1 = new JPanel(true);
p2 = new JPanel(true); // MUST BE SET BEFORE GOING TO
generateWebBrowser()
generateWebBrowser(); // WILL ADD LOCAL WebBrowser INSTANCE
ONTO JPanel p2 HERE
addToPanel(); // FOR NOW WILL ONLY ADD JPanel p1
addToFrame();
showFrame();
}
/**
* Initialize objects
*/
private void initObjects() {
if (getURL() == null && getURLPath() == null)
setURLPath(SimpleBrowser.DEFAULT_URL_PATH);
historyURLVector = new Vector<URL>();
bookmarkURLVector = new Vector<URL>();
try {
addToHistoryURLVector();
SimpleBrowser.hasAddedInitialURL = true;
} catch (Exception e) {
e.printStackTrace();
}
WebBrowser.setDebug(false); // SET TO TRUE TO SEE trace()
DEBUG STATEMENTS
browser = new WebBrowser();
}
/**
* Layout {@link #p2} using {@link
com.ppowell.tools.ObjectTools.SwingTools.WindowInsetDimension} to
calculate dimensions
*/
private void layoutBottomPanel() {
p2.setLayout(new BorderLayout());
if (getScreenWidth() <= 0)
setScreenWidth(SimpleBrowser.DEFAULT_SCREEN_WIDTH);
if (getScreenHeight() <= 0)
setScreenHeight(SimpleBrowser.DEFAULT_SCREEN_HEIGHT);
p2.setSize(new Dimension(getScreenWidth(),
getScreenHeight()));
// THIS WILL ENSURE IT WON'T BE TOO LARGE TO DISPLAY
//int preferredHeight = (int)new
WindowInsetDimension(this).insetDimension().getHeight() -
SimpleBrowser.DEFAULT_WEB_ADDRESS_BAR_HEIGHT;
int preferredHeight =
SimpleBrowser.DEFAULT_WEB_ADDRESS_BAR_HEIGHT;
if (getScreenHeight() < preferredHeight) preferredHeight =
getScreenHeight();
p2.setPreferredSize(new Dimension(getScreenWidth(),
preferredHeight));
p2.add(browser, BorderLayout.CENTER);
}
/**
* Layout {@link #p1}
*/
private void layoutTopPanel() {
c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 0;
c.anchor = GridBagConstraints.NORTHWEST;
p1.setLayout(new GridBagLayout());
p1.add(new JLabel("Your URL:"), c);
c.gridx++;
c.gridy = 0;
c.fill = GridBagConstraints.HORIZONTAL;
p1.add(webAddressBox, c); // ADD JComboBox
c.gridx++;
c.gridy = 0;
c.fill = GridBagConstraints.NONE;
p1.add(b, c); // ADD JBUTTON
if (getScreenWidth() <= 0)
setScreenWidth(SimpleBrowser.DEFAULT_SCREEN_WIDTH);
p1.setSize(new Dimension(getScreenWidth(),
SimpleBrowser.DEFAULT_WEB_ADDRESS_BAR_HEIGHT));
p1.setOpaque(true);
p1.setBackground(Color.WHITE);
p1.setVisible(true);
}
/**
* Process new {@link java.net.URL} request
*/
protected void processURL() {
SimpleBrowser.hasEnteredAdditionalURL = true;
SimpleBrowser.hasAddedInitialURL = false;
setURLPath(webAddressBox.getSelectedItem().toString());
try {
addToHistoryURLVector(new URL(getURLPath()));
URLVectorSorter.sort(historyURLVector);
} catch (Exception e) {
e.printStackTrace();
}
generateJComboBox();
webAddressBox.setSelectedItem(getURL());
generateWebBrowser();
}
/**
* Perform setup
*/
private void setupSimpleBrowser() {
initObjects();
initComponents();
}
/**
* Show {@link SimpleBrowser}
*/
public void showFrame() {
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
--
Knute Johnson
email s/nospam/knute/
Phillip, you are wasting my time. This does not compile because the
formatting is a mess. I spent 15 minutes cleaning it up before I
realized that there is no WebBrowser class so it won't compile anyway.
You need to put a little effort in if you want help back. Make a
will be glad to help you out.