Using Netbeans
IDE 5 and cobbled together a program from web samples, but can't seem to get it to show a Jpeg in a frame.
The actual code that I thought would show the pic is as follows:
ImageIcon icon = new ImageIcon("c:/beast.jpg");
JFrame PicFrame = new JFrame("PictureFrame");
PicFrame.setIconImage(icon.getImage());
Program runs with no errors but still no picture - any ideas why it's not happening (program code below)?
Many thanks in advance
Paul.
/*
* Tower.java
*
* Created on 28 July 2006, 11:02
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package darktower;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
*
* @author paul
*/
public class Tower extends JPanel {
JFrame TowerFrame;
/** Creates a new instance of Tower */
public Tower(JFrame frame) {
super(new BorderLayout());
this.TowerFrame = TowerFrame;
JLabel TowerTitle;
setLayout(new GridLayout(3, 1));
TowerTitle = new JLabel("LCD Goes Here");
TowerTitle.setVerticalTextPosition(JLabel.CENTER);
TowerTitle.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
add(TowerTitle, BorderLayout.NORTH);
ImageIcon icon = new ImageIcon("c:/beast.jpg");
JFrame PicFrame = new JFrame("PictureFrame");
PicFrame.setIconImage(icon.getImage());
JLabel PicLabel;
PicLabel = new JLabel("Picture goes here");
PicLabel.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
add(PicLabel, BorderLayout.CENTER);
JPanel TowerButtonsPanel = CreateTowerButtons();
TowerButtonsPanel.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
add(TowerButtonsPanel, BorderLayout.SOUTH);
}
private JPanel CreateTowerButtons(){
final int NumButtons = 12;
JButton[] TowerButtons = new JButton[NumButtons];
TowerButtons[ 0] = new JButton("Test1");
TowerButtons[ 1] = new JButton("Test2");
TowerButtons[ 2] = new JButton("Test3");
TowerButtons[ 3] = new JButton("Test4");
TowerButtons[ 4] = new JButton("Test5");
TowerButtons[ 5] = new JButton("Test6");
TowerButtons[ 6] = new JButton("Test7");
TowerButtons[ 7] = new JButton("Test8");
TowerButtons[ 8] = new JButton("Test9");
TowerButtons[ 9] = new JButton("Test10");
TowerButtons[10] = new JButton("Test11");
TowerButtons[11] = new JButton("Test12");
TowerButtons[0].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
PressedButton("Test1");
}
});
return createPane("Whatever", TowerButtons);
}
private static void PressedButton(
String BtnName){
System.out.println(BtnName);
//To change JPeg here
}
private JPanel createPane(String description, JButton[] TowerButtons) {
int NumButtons = TowerButtons.length;
JPanel NewBox = new JPanel();
JLabel NewLabel = new JLabel(description);
NewBox.setLayout(new GridLayout(0, 3));
for (int i = 0; i < NumButtons; i++) {
NewBox.add(TowerButtons[i]);
}
return NewBox;
}
private static void CreateAndShowTowerGUI() {
JFrame.setDefaultLookAndFeelDecorated(true);
//Create and set up the window
JFrame MainTowerFrame = new JFrame("Dark Tower");
MainTowerFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Set up the 1st Controls container
Container MainTowerContainer = MainTowerFrame.getContentPane();
MainTowerContainer.setLayout(new GridLayout(1,1));
//Populate the MainContainer control
MainTowerContainer.add(new Tower(MainTowerFrame));
//Diplay The Window
MainTowerFrame.pack();
MainTowerFrame.setVisible(true);
}
private static ImageIcon TowerIcon(String ImageName)
{
ImageIcon icon = null;
icon = new ImageIcon(
Tower.class.getResource("c:/" + ImageName + ".jpg"));
return icon;
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
//Schedule
thread to show GUI
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
CreateAndShowTowerGUI();
}
});
}
}