JLabel not showing in JFrame

Here is my code, I thought I was doing this right but can't get this to show up
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
* @author  Administrator
public class EditFrame extends JFrame{
    LP editing_lp;
    JPanel editing_panel, top, center, bottom;
    JButton edit;
    JTextField Band, Album, Price, Comment;
    JLabel serial, band, album, price, comment;
    /** Creates a new instance of EditFrame */
    public EditFrame() {
        super();
        setTitle("Edit the information of an LP");
        setSize(500,300);
        addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e){
                setVisible(false);}
        Container cp=getContentPane();
        //editing_lp = in_lp;
        this.setVisible(true);
        this.createPanel();
        cp.add(editing_panel);
    public void createPanel(){
        //Build the main panel
        editing_panel = new JPanel();       
        editing_panel.setLayout(new BorderLayout());
        //Build the top panel
        top = new JPanel();
        top.setLayout(new GridLayout(1,1));       
        serial = new JLabel("The LP serial number: ");
        top.add(serial);
        //Adding the minor panels to the major panel
        editing_panel.add(BorderLayout.NORTH, top);
    public static void main(String[] args){
        EditFrame my_ef = new EditFrame();
}If you guys can give me any help that would be much appreciated.

see the only change i made
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
* @author  Administrator
public class EditFrame extends JFrame{
//    LP editing_lp;
    JPanel editing_panel, top, center, bottom;
    JButton edit;
    JTextField Band, Album, Price, Comment;
    JLabel serial, band, album, price, comment;
    /** Creates a new instance of EditFrame */
    public EditFrame() {
        super();
        setTitle("Edit the information of an LP");
        setSize(500,300);
        addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e){
                setVisible(false);}
        Container cp=getContentPane();
        //editing_lp = in_lp;
        this.createPanel();
        /*********** First add the panel and then set to true **********/
        cp.add(editing_panel);
        this.setVisible(true);
    public void createPanel(){
        //Build the main panel
        editing_panel = new JPanel();
        editing_panel.setLayout(new BorderLayout());
        //Build the top panel
        top = new JPanel();
        top.setLayout(new GridLayout(1,1));
        serial = new JLabel("The LP serial number: ");
//        serial.setVisible(true);
        top.add(serial);
        //Adding the minor panels to the major panel
        editing_panel.add(BorderLayout.NORTH, top);
    public static void main(String[] args){
        EditFrame my_ef = new EditFrame();
}

Similar Messages

  • Images not showing in the jlabel/jbutton

    Hello all,
    I've a package in which my cards directory is located along with all my src files and compiled classes. All my images ****.gif files are inside this directory.
    Then I've following the icon object.
    protected static JLabel lblDeck;The following code is used to get the image.
      String imgPath;
         imgPath = isImageExists("imgBG1.gif");
              if (imgPath == "")
              {     // If the image of Card Deck(imgDeck) is not Found
                   lblDeck = new JLabel();
                   lblDeck.setBackground(new Color(0, 64, 128));
                   lblDeck.setOpaque(true);
                   flagImgDeckFound = false;
              } else {
                   // If the image of Card Deck is Found
                   imgDeck     = new ImageIcon(imgPath);
                   lblDeck = new JLabel(imgDeck);
    // Check if the image exists else return "";
      protected String isImageExists(String imgName) {
              java.net.URL imgURL = getClass().getResource("cards/" + imgName);
             if (imgURL != null)
             {     return (imgURL.toString());     }
             else
                  JOptionPane.showMessageDialog(null, "File not Found: " + imgURL);
                  return "";
         }I'm still unable to get the image in the jlabel!
    When i checked the path, it is exactly returning the path of the file.
    But its neither loading the image into the jlabel nor is it returning "".
    This is just the label part i've other jbuttons also. Even they are not displaying any images.

    aLkeshP wrote:
    can everyone see this thread?
    YES FER-CHRISE-SAKE.
    Just how many times do you intend posting the same identical question?
    images not showing in the jlabel/jbutton
    Problem in imageicon
    iconImage on JButton & JLabel
    Re: images not showing in the jlabel/jbutton

  • I add components to contentPane, but JFrame still does not show them

    I converted a small game I was making from AWT to Swing.(The game is just MineSweeper.) I made all the necessary adjustments like, Button to JButton and add() to getContentPane().add(), but when I show the JFrame, it does not show any components that I added. I have run test programs to see if I am adding the components correctly and they work.
    I print out the number of components contained in the frame by using getComponentCount() and the number is correct. It just will not show up in the JFrame. I have tried everything I can think of, no matter how strange and it still will not show the components.
    I have attached all the code to the bottom of this message. Can someone please take a look and see what I am missing.
    Thanks.
    Here's the code. The main file is at the end and is the one causing the problems. All the rest is just support stuff and should not be relavent, but I included it in case I missed something there.
    //Timer is just a custom timer
    import java.util.Date;
    public class Timer {
         Date curr;
         public Timer() {
              curr=new Date();
         public void start() {
              curr=new Date();
         public int getSeconds() {
              return (int)(((new Date().getTime())-curr.getTime())/1000);
    //Cover subclasses JButton for initial look
    import java.awt.*;
    import javax.swing.*;
    public class Cover extends JButton {
         Dimension size;
         public Cover() {
              super("");
              size=new Dimension(20,20);
              setSize(size);
         public Cover(String l) {
              super("");
              size=new Dimension(20,20);
              setSize(size);
         public void setSize(Dimension s) {
              super.setSize(size);
         public Dimension getPreferredSize() {
              return size.getSize();
         public Dimension getMinimumSize() {
              return size.getSize();
         public Dimension getMaximumSize() {
              return size.getSize();
    //Flag subclasses JButton to flag a mine
    import java.awt.*;
    import javax.swing.*;
    public class Flag extends JButton {
         Dimension size;
         public Flag() {
              super("F");
              size=new Dimension(20,20);
         public Flag(String l) {
              super("F");
              size=new Dimension(20,20);
         public void setSize(Dimension s) {
              super.setSize(size);
         public Dimension getPreferredSize() {
              return size.getSize();
         public Dimension getMinimumSize() {
              return size.getSize();
         public Dimension getMaximumSize() {
              return size.getSize();
    //Reveal subclasses JPanel to show what's underneath
    import java.awt.*;
    import javax.swing.*;
    public class Reveal extends JPanel {
         Dimension size;
         int number;
         Color color[];
         public Reveal(int n) {
              super();
              size=new Dimension(20,20);
              number=n;
              color=new Color[10];
              color[0]=Color.black;
              color[1]=Color.orange;
              color[2]=Color.cyan;
              color[3]=Color.yellow;
              color[4]=Color.green;
              color[5]=Color.magenta;
              color[6]=Color.blue;
              color[7]=Color.pink;
              color[8]=Color.darkGray;
              color[9]=Color.red;
              //for(int x=0;x<10;x++) {
              //     System.out.println(x+"="+color[x]);
              setBackground(Color.black);
         public void paintComponent(Graphics g) {
              int width=getWidth();
              int height=getHeight();
              FontMetrics fm=g.getFontMetrics();
              int fw=0;
              int fh=fm.getAscent();
              g.setColor(color[number]);
              if(number==9) {
                   fw=fm.stringWidth("M");
                   g.drawString("M",width/2-(fw/2),height/2+(fh/2));
              else if(number!=0) {
                   fw=fm.stringWidth(""+number);
                   g.drawString(""+number,width/2-(fw/2),height/2+(fh/2));
              g.setColor(Color.white);
              g.drawRect(1,1,width-2,height-2);
              //System.out.println("number="+number);
         public void setNumber(int n) {
              number=n;
         public int getNumber() {
              return number;
         public Dimension getPreferredSize() {
              return size.getSize();
         public Dimension getMinimumSize() {
              return size.getSize();
         public Dimension getMaximumSize() {
              return size.getSize();
    //MineSweeper just launches the program and subclasses JFrame
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class MineSweeper extends JFrame implements ComponentListener {
         public MineSweeper(String s) {
              super(s);
              addComponentListener(this);
         public void quit() {
              System.exit(0);
         public void componentHidden(ComponentEvent e){}
         public void componentMoved(ComponentEvent e){}
         public void componentResized(ComponentEvent e){
              System.out.println("resized");
              MineSweeper temp=(MineSweeper)e.getSource();
              System.out.println("count="+temp.getContentPane().getComponentCount());
         public void componentShown(ComponentEvent e){}
         public static void main(String args[]) {
              MineSweeper t=new MineSweeper("Inside Moves");
              t.addWindowListener(new WindowAdapter() {
                   public void windowClosing(WindowEvent e) {
                        System.exit(0);
              GameManager manager=new GameManager(t);
    //GameManager is the main program. This is where the JFrame is realized
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;
    public class GameManager implements MouseListener, ActionListener, Runnable {
         JPanel display;
         JPanel gameInfo;
         MineSweeper screen;
         JButton reset;
         JTextField tMine,time;
         Container pane;
         int clickX,clickY;
         int minesLeft;
         int gridX[],gridY[],mine[];
         static final int MAX_X=30;
         static final int MAX_Y=24;
         static final int MAX_MINE=667;
         JComponent grid[][];
         int board[][];
         int number[][];
         final static int OB=64;
         final static int BLANK=0;
         final static int MINE=1;
         final static int REVEAL=128;
         int level;
         final static int EASY=0;
         final static int MEDIUM=1;
         final static int HARD=2;
         final static int CUSTOM=3;
         int state;
         final static int START=1;
         final static int PLAYING=2;
         final static int DONE=3;
         Timer timer;
         int timeDisp;
         public GameManager(MineSweeper s) {
              screen=s;
              pane=screen.getContentPane();
              pane.setLayout(new BorderLayout());
              display=new JPanel();
              gameInfo=new JPanel(new GridLayout(1,3));
              reset=new JButton("Reset");
              tMine=new JTextField(20);
              time=new JTextField("0",20);
              grid=new JComponent[MAX_X+2][MAX_Y+2];
              board=new int[MAX_X+2][MAX_Y+2];
              number=new int[MAX_X+2][MAX_Y+2];
              gridX=new int[4];
              gridY=new int[4];
              mine=new int[4];
              level=EASY;
              gridX[0]=8;
              gridY[0]=8;
              mine[0]=10;
              gridX[1]=16;
              gridY[1]=16;
              mine[1]=40;
              gridX[2]=30;
              gridY[2]=16;
              mine[2]=99;
              gridX[3]=0;
              gridY[3]=0;
              mine[3]=0;
              minesLeft=mine[level];
              tMine.setText(""+minesLeft);
              state=START;
              timer=new Timer();
              reset.addActionListener(this);
              setup();
              Thread t=new Thread(this);
              t.start();
              /*System.out.println("count="+pane.getComponentCount());
              Component cc[]=pane.getComponents();
              for(int i=0;i<cc.length;i++) {
                   System.out.println("cc="+cc);
         public void setup() {
              boolean done;
              for(int x=0;x<=gridX[level]+1;x++) {
                   for(int y=0;y<=gridY[level]+1;y++) {
                        if(x==0 || x==gridX[level]+1 || y==0 || y==gridY[level]+1) {
                             board[x][y]=OB;
                             number[x][y]=-1;
                        else {
                             board[x][y]=BLANK;
              for(int i=0;i<mine[level];i++) {
                   done=false;
                   while(!done) {
                        int x=(int)((Math.random()*gridX[level])+1.0);
                        int y=(int)((Math.random()*gridY[level])+1.0);
                        if(board[x][y]==BLANK) {
                             board[x][y]=MINE;
                             done=true;
                             //System.out.println("Mine x="+x+" y="+y);
              for(int y=1;y<=gridY[level];y++) {
                   System.out.print("\n");
                   for(int x=1;x<=gridX[level];x++) {
                        number[x][y]=0;
                        if(board[x][y]==MINE) {
                             number[x][y]=9;
                             System.out.print(""+number[x][y]);
                             continue;
                        else {
                             //System.out.println("For board pos x="+x+" y="+y);
                             for(int i=-1;i<=1;i++) {
                                  for(int j=-1;j<=1;j++) {
                                       //System.out.print(""+board[x+i][y+j]);
                                       if(board[x+i][y+j]!=OB && board[x][y]==BLANK) {
                                            number[x][y]+=board[x+i][y+j];
                                  //System.out.print("\n");
                             System.out.print(""+number[x][y]);
              System.out.print("\n");
              screen.setVisible(false);
              display.removeAll();
              pane.removeAll();
              display.setLayout(new GridLayout(gridY[level],gridX[level]));
              for(int y=1;y<=gridY[level];y++) {
                   for(int x=1;x<=gridX[level];x++) {
                        Cover temp=new Cover();
                        //System.out.println("new button="+temp);
                        grid[x][y]=temp;
                        //System.out.println("display="+display.add(temp));
                        //display.add(temp);
                        temp.addMouseListener(this);
              //System.out.println("count="+display.getComponentCount());
              screen.setSize(gridX[level]*20,gridY[level]*20+30);
              pane.add(gameInfo,BorderLayout.NORTH);
              pane.add(display,BorderLayout.CENTER);
              minesLeft=mine[level];
              timeDisp=0;
              tMine.setText(""+minesLeft);
              time.setText(""+timeDisp);
              state=START;
              //System.out.println("gameInfo="+gameInfo);
              //System.out.println("display="+display);
              //screen.pack();
              screen.setVisible(true);
         void revealAround(int x,int y) {
              int index;
              Reveal tempRev=new Reveal(number[x][y]);
              grid[x][y]=tempRev;
              board[x][y]=(board[x][y]|REVEAL);
              index=(x-1)+((y-1)*gridX[level]);
              display.remove(index);
              display.add(tempRev,index);
              if(number[x][y]==0) {
                   for(int i=-1;i<=1;i++) {
                        for(int j=-1;j<=1;j++) {
                             if(!(i==0 && j==0)) {
                                  if((board[x+i][y+j]&REVEAL)!=REVEAL && board[x+i][y+j]!=OB) {
                                       revealAround(x+i,y+j);
         void startTimer() {
              timer.start();
         public void run() {
              while(true) {
                   if(state==PLAYING) {
                        if(timer.getSeconds()>timeDisp) {
                             timeDisp=timer.getSeconds();
                             time.setText(""+timeDisp);
                   else {
                        try {
                             Thread.sleep(1000);
                        catch (InterruptedException e) {
         public void actionPerformed(ActionEvent e) {
              if(e.getActionCommand().equals("Reset")) {
                   setup();
         public void mouseClicked(MouseEvent e) {
              if(state==START) {
                   startTimer();
                   state=PLAYING;
              if(state==PLAYING) {
                   Component tempComp=(Component)e.getSource();
                   boolean found=false;
                   int index=0;
                   int buttonPressed=e.getModifiers();
                   for(int x=1;x<=gridX[level];x++) {
                        if(found) {
                             break;
                        for(int y=1;y<=gridY[level];y++) {
                             if(tempComp==grid[x][y]) {
                                  clickX=x;
                                  clickY=y;
                                  found=true;
                                  break;
                   index=(clickX-1)+((clickY-1)*gridX[level]);
                   if(buttonPressed==InputEvent.BUTTON1_MASK && !(grid[clickX][clickY] instanceof Flag)) {
                        Reveal tempRev=new Reveal(number[clickX][clickY]);
                        grid[clickX][clickY]=tempRev;
                        board[clickX][clickY]=board[clickX][clickY]|REVEAL;
                        display.remove(index);
                        display.add(tempRev,index);
                   else if(buttonPressed==InputEvent.BUTTON3_MASK) {
                        if(display.getComponent(index) instanceof Cover) {
                             Flag tempFlag=new Flag();
                             grid[clickX][clickY]=tempFlag;
                             display.remove(index);
                             display.add(tempFlag,index);
                             tempFlag.addMouseListener(this);
                             minesLeft--;
                        else if(display.getComponent(index) instanceof Flag) {
                             Cover tempCov=new Cover();
                             grid[clickX][clickY]=tempCov;
                             display.remove(index);
                             display.add(tempCov,index);
                             tempCov.addMouseListener(this);
                             minesLeft++;
                        tMine.setText(""+minesLeft);
                   if(number[clickX][clickY]==0) {
                        revealAround(clickX,clickY);
                   screen.setVisible(true);
         public void mousePressed(MouseEvent e) {}
         public void mouseReleased(MouseEvent e) {}
         public void mouseEntered(MouseEvent e) {}
         public void mouseExited(MouseEvent e) {}

    setBounds() is only used for absolute positioning. I
    am using layout managers, so it should no be used.
    Thanks for you reply.Oh I get I did not look at your source code enought... can you post only the part that is bugy!?!?!
    JRG

  • JList is not showing up in my Frame

    This is a program I wrote for Having images in a List. A custom cellrenderer and a custom listmodel. Somehow the list itself does not show up in my frame.
    import java.awt.Component;
    import javax.swing.DefaultListModel;
    import javax.swing.Icon;
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JList;
    import javax.swing.JScrollPane;
    import javax.swing.ListCellRenderer;
    public class ListWithImages extends JFrame {
         public ListWithImages() {
              //          We need a Custom model and a Custom Cell Renderer
              CustomImageListModel customImageListModel = new CustomImageListModel();
              CustomImageListCellRenderer customImageListCellRenderer = new CustomImageListCellRenderer();
              JList jlist = new JList(customImageListModel);
              jlist.setCellRenderer(customImageListCellRenderer);
              jlist.setVisibleRowCount(6);
              getContentPane().add(new JScrollPane(jlist));
              pack();
              setVisible(true);
         public static void main(String args[]) {
              new ListWithImages();
         class CustomImageListModel extends DefaultListModel {
              @Override
              public void addElement(Object arg0) {
                   // TODO Auto-generated method stub
         //          Add 10 elements with images
                   for (int i = 0; i < 10; i++) {
                        super.addElement(new Object[] { "Item " + i, new ImageIcon("smiley.jpg") });
         class CustomImageListCellRenderer extends JLabel implements ListCellRenderer {
              public CustomImageListCellRenderer() {
                   setOpaque(true);
              public Component getListCellRendererComponent(JList jlist, Object obj,
                        int index, boolean isSelected, boolean focus) {
                   CustomImageListModel model = (CustomImageListModel) jlist.getModel();
                   setText((String) ((Object[]) obj)[0]);
                   setIcon((Icon) ((Object[]) obj)[1]);
                   if (!isSelected) {
                        setBackground(jlist.getBackground());
                        setForeground(jlist.getForeground());
                   } else {
                        setBackground(jlist.getSelectionBackground());
                        setForeground(jlist.getSelectionForeground());
                   return this;
    }

    I try yhis code and the list is displayed. Try using a layout to get a better design
    public ListWithImages() {
                    this.setLaout(new FlowLayout());
              //          We need a Custom model and a Custom Cell Renderer
              CustomImageListModel customImageListModel = new CustomImageListModel();
              CustomImageListCellRenderer customImageListCellRenderer = new CustomImageListCellRenderer();
              JList jlist = new JList(customImageListModel);
              jlist.setCellRenderer(customImageListCellRenderer);
              jlist.setVisibleRowCount(6);
              getContentPane().add(new JScrollPane(jlist));
              pack();
              setVisible(true);
         }http://java.sun.com/docs/books/tutorial/uiswing/layout/visual.html
    HTH

  • Why is the GUI not showing when i run it

    Why is it not showing the container
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;
    public class Progress extends JFrame {
         private String path;
         private JPanel topLeftPanel;
         private JPanel labelPanel;
         private JTextField pathField;
         public Progress()
              this.setTitle("PROGRESS Message Viewer");
              this.setSize(800, 600);
              Container contentPane = this.getContentPane( );
              // Technique for centering a frame on the screen.
              Dimension frameSize = this.getSize();
              Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
              this.setLocation((screenSize.width - frameSize.width)/2,
                               (screenSize.height - frameSize.height)/2);
              topLeftPanel = new JPanel();
              topLeftPanel.setLayout(new GridLayout(1, 2));
              labelPanel = new JPanel();
              labelPanel.setLayout(new GridLayout(4, 1));
              JLabel l = new JLabel("Please enter the path to log file:  ");
              l.setForeground(Color.black);
              labelPanel.add(l);
              topLeftPanel.add(labelPanel);
              pathField = new JTextField(80);
              ActionListener aListener = new ActionListener() {
                   public void actionPerformed(ActionEvent e) {
                        // Retrieve the path.
                        char[] pathFieldText = pathField.getText().toCharArray();
                        path = new String(pathFieldText).trim();
              pathField.addActionListener(aListener);
              contentPane.add(topLeftPanel);
              contentPane.add(pathField);
         public static void main(String []args){
              Progress p = new Progress();
    }

    Swing related questions should be posted in the Swing forum.
    Read the BoderLayout API documentation. If you don't specify a constraint then by default the component is added to the "CENTER". However only a single component can be displayed in any given area of the BorderLayout. So the second add(...) method replaces the first component added.
    Read the Swing tutorial on [url http://java.sun.com/docs/books/tutorial/uiswing/layout/visual.html]How to Use Layout Managers for more information.

  • Components not showing in java 1.4

    I have a small program where some JLabels, JTextFields, JComboBoxes and JCheckBoxes are shown in a JFrame. It works fine in JBuilder 7 but when I tried to run it outside JBuilder, where I have java 1.4.1 installed, the components are not showing correctly. The JLabels are not shown att all and the rest of the components are not fully painted, if at all. If I run it from the bin directory in JBuilder, where java 1.3 is installed, the program works fine.
    Anybody have any idea what could be wrong?

    I have tried compiling both with javac and in JBuilder and in JBuilder and java 1.3 it works fine, but with java 1.4.1 it doesn't.
    I am not using any special JBuilder layout, I have written all the code by hand (haven't figured out the design function in jBuilder yet).

  • JScrollPane bars do not show

    Hi,
    I add the Panel that contains a large image to a scroll pane. However, the image is large, and the scroll bars do not show.
        JScrollPane ScrollPaneScroller = new JScrollPane();
        this.getContentPane().add(ScrollPaneScroller, BorderLayout.CENTER);
        ScrollPaneScroller.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        ScrollPaneScroller.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        ScrollPaneScroller.getViewport().add(PanelwithImage, null);
        PanelwithImage.setCenter(this.getWidth(), this.getHeight());Also, how to display the center of the image?

    Aw h&#101;ll...
    import java.awt.Dimension;
    import java.awt.Image;
    import java.io.IOException;
    import java.net.URL;
    import javax.imageio.ImageIO;
    import javax.swing.*;
    public class BigDukeImage {
      public static final String IMAGE_PATH = "http://"
          + "duke.kenai.com/nyanya/NyaNya.jpg";
      private static final Dimension SCROLLPANE_SIZE = new Dimension(900, 700);
      private static void createAndShowUI() {
        Image image = null;
        try {
          URL url = new URL(IMAGE_PATH);
          image = ImageIO.read(url);
          JLabel label = new JLabel(new ImageIcon(image));
          JScrollPane scrollpane = new JScrollPane(label);
          scrollpane.setPreferredSize(SCROLLPANE_SIZE);
          JFrame frame = new JFrame("Big Duke Image");
          frame.getContentPane().add(scrollpane);
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.pack();
          frame.setLocationRelativeTo(null);
          frame.setVisible(true);
          JScrollBar vertSBar = scrollpane.getVerticalScrollBar();
          JScrollBar horzSBar = scrollpane.getHorizontalScrollBar();
          vertSBar.setValue(
              (vertSBar.getMaximum() - vertSBar.getVisibleAmount()) / 2);
          horzSBar.setValue(
              (horzSBar.getMaximum() - horzSBar.getVisibleAmount()) / 2);
        } catch (IOException e) {
          e.printStackTrace();
      public static void main(String[] args) {
        java.awt.EventQueue.invokeLater(new Runnable() {
          public void run() {
            createAndShowUI();
    }

  • Image does not show up!

    Hello. Im studying java swing and working on some experiment and badly need some help. Im using Graphics2D and not JLable or Icon for some reason. The problem is the image does not show up. What could be the reason and work around? Another, do you know any tutorial on the said matter? Thanks in advance.
    import java.awt.*;
    import javax.swing.*;
    public class ShowImageGraphics
         //Graphics2D g2;
         public static void main(String[] args)
              new ShowImageGraphics();
         public ShowImageGraphics()
              JFrame frame = new JFrame("Sample Graphics");
              frame.setSize(200, 300);
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              frame.getContentPane();
              frame.show();
         public void paint(Graphics g)
               Graphics2D g2 = (Graphics2D)g.create();
              Image img = Toolkit.getDefaultToolkit().getImage("/images/rocketship.gif");
              g2 = (Graphics2D)g;
              g2.drawImage(img,14,5,33,40, null);
    }

    import java.awt.*;
    import java.awt.image.*;
    import java.net.*;
    import javax.swing.*;
    public class ImageExample {
        public static void main(String[] args) throws MalformedURLException {
            URL url = new URL("http://today.java.net/jag/bio/JagHeadshot.jpg");
            JLabel label = new JLabel(new ImageIcon(url));
            JFrame f = new JFrame("ImageExample");
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.getContentPane().add(new JScrollPane(label));
            f.pack();
            f.setExtendedState(JFrame.MAXIMIZED_BOTH);
            f.setVisible(true);
    }

  • Gui labels and buttons not showing...

    I am using Java to create a gui and so far I have everything working.
    But there is a section of code thats not working out and Ill post the whole file here (not very big) to let you guys see whats going on. The issue lies in the action listner where I state "if a text feild is empty, display the option pane, else show the following" and its not showing the labels and buttons.
    Help?
    package student.information.search;
    import javax.swing.JFrame;
    import java.awt.GridBagLayout;
    import javax.swing.WindowConstants;
    import java.awt.Rectangle;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import java.awt.ActiveEvent;
    import java.awt.Frame;
    import java.awt.GridBagConstraints;
    import java.awt.Insets;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JTextField;
    import javax.swing.JButton;
    import student.information.readonly.ReadOnlyStudentForm;
    public class StudentSearch extends Frame implements ActionListener
       JTextField textField = new JTextField();
       JFrame frame = new JFrame();
       JPanel contentPane = (JPanel) frame.getContentPane();
       GridBagLayout gridBagLayout = new GridBagLayout();
        public StudentSearch()
            gridBagLayout.columnWidths = new int[]{20, 0, 12, 137, 17};
            gridBagLayout.rowHeights = new int[]{26, 0, 6, 0, 20};
            gridBagLayout.columnWeights = new double[]{1, 0, 0, 0, 0};
            gridBagLayout.rowWeights = new double[]{0, 0, 0, 0, 1};
            contentPane.setLayout(gridBagLayout);
            JButton button = new JButton();
            button.setText("Search");
            button.addActionListener(this);
            contentPane.add(button, new GridBagConstraints(3, 3, 1, 1, 0.0, 0.0, 13, 0, new Insets(0, 0, 0, 0), 0, 0));
            textField.setColumns(8);
            contentPane.add(textField, new GridBagConstraints(3, 1, 1, 1, 0.0, 0.0, 768, 2, new Insets(0, 0, 0, 0), 0, 0));
            JLabel label = new JLabel();
            label.setText("Student Seach");
            contentPane.add(label, new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0, 256, 0, new Insets(0, 0, 0, 0), 0, 0));
            frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
            frame.setTitle("Student Search");
            frame.setBounds(new Rectangle(500, 0, 500, 320));
            frame.setVisible(true);
       public void actionPerformed( ActionEvent arg0)
            if (textField.getText().equals(""))
              JOptionPane.showConfirmDialog(null, "Please enter a value in the search feild", "Error", JOptionPane.OK_CANCEL_OPTION); 
            else
               //Show the text fields here and the user information. 
                 *  While there are students for this search, change the text fields to Name, Last Name and ID and have a button called
                 *  View that when clicked allows for you to view all that students information.
                JLabel firstName = new JLabel();
                firstName.setText("Label");
                contentPane.add(firstName, new GridBagConstraints(5, 5, 1, 1, 0.0, 0.0, 768, 0, new Insets(0, 0, 0, 0), 0, 0));
                JLabel lastName = new JLabel();
                lastName.setText("Label");
                contentPane.add(lastName, new GridBagConstraints(3, 5, 1, 1, 0.0, 0.0, 256, 0, new Insets(0, 0, 0, 0), 0, 0));
                JLabel studentID = new JLabel();
                studentID.setText("Label");
                contentPane.add(studentID, new GridBagConstraints(1, 5, 1, 1, 0.0, 0.0, 256, 0, new Insets(0, 0, 0, 0), 0, 0));
                JButton viewStudentInformation = new JButton();
                viewStudentInformation.setText("Search");
                viewStudentInformation.addActionListener(new ActionListener()
                        public void actionPerformed(ActionEvent e)
                               //For viewing individual student information
                                new ReadOnlyStudentForm();
                contentPane.add(viewStudentInformation, new GridBagConstraints(7, 3, 1, 1, 0.0, 0.0, 13, 0, new Insets(0, 0, 0, 0), 0, 0));
    }

    In general when adding or removing components for a visible GUI you need to use:
    panel.add(...);
    panel.revalidate();
    panel.repaint();

  • The JPanel did not show when the menu is selected

    My program consists a JMenu bar with sub menu items. When the user select on the menu items a panel with the gridbag layout will show with all the labels.but the panel did not show. Can anyone show the problem for me ?
    AdminFrameMain.java
    public class AdminFrameMain
         private DisplayMenuBar menubar;
         private DisplayToolBar toolbar;
         private DisplayStatusBar statusbar;     
         public AdminFrameMain()
              JFrame frame = new JFrame("S-League Administration Management System");
              Toolkit kit = frame.getToolkit();
              Dimension windowsize =kit.getScreenSize();
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              Container content = frame.getContentPane();
              content.setLayout(new BorderLayout());
              menubar = new DisplayMenuBar(frame,content);
              toolbar = new DisplayToolBar(content);
              statusbar = new DisplayStatusBar(content);
              frame.setSize(800,600);
              frame.setVisible(true);
         public static void main(String [] args){
              AdminFrameMain tm = new AdminFrameMain();
    DisplayMenuBar.java
    public class DisplayMenuBar
         private JMenu addMenu,addTeamMenu;
         private JMenuBar bar = new JMenuBar();
         private JToolBar toolbar = new JToolBar();
         private JMenuItem addTeamItem;
         private JFrame setFrame;
         private Container setContent;
         private AddTeamManagement addTeamMang;
         public DisplayMenuBar(JFrame frame,Container c)
              setFrame = frame;
              setContent = c;
              SetMenuBar();
         public void SetMenuBar()
         setFrame.setJMenuBar(bar);
         addMenu = new JMenu("Add");
         //file menu items list
         //Add sub menu
         addTeamMenu = new JMenu("Team Management");
         addMenu.add(addTeamMenu);
         //Add sub menu items
         addTeamMenu.add(addTeamItem = new JMenuItem("Add Team"));
         addTeamMenu.setMnemonic('T');     
         addTeamItem.setMnemonic('T');
         //team items listener
         //addTeamItem.addActionListener(taskcommand);          
         addTeamItem.addActionListener(new ActionListener()
              public void actionPerformed(ActionEvent e)
                   AddTeamManagement addTeamMang = new AddTeamManagement(setFrame,setContent);
         bar.add(addMenu);
    AddTeamManagement.java
    public class AddTeamManagement
         private JPanel addTeamPanel;
         private JFrame frame;
         private JButton createTeamBt,resetTeamBt;
         private Container addTeamContent;
         private JTextArea teamDescTextArea,teamIndpTextArea;
         private JTextField teamNameField;
         private JLabel teamID,teamDesc,teamInfo,numOfPlayers,teamZone,playersNum;
         private GridBagLayout gridBag;
         private GridBagConstraints constraints;
         public AddTeamManagement(JFrame f,Container c)
              System.out.println("add team mg");
              addTeamPanel = new JPanel();
              frame = f;
              addTeamContent = c;
              gridBag = new GridBagLayout();
              addTeamPanel.setLayout(gridBag);
              addTeamPanel.setBackground(Color.pink);
              constraints = new GridBagConstraints();
              teamID = new JLabel("Team ID:");
              teamDesc = new JLabel("Team Description:");
              teamInfo = new JLabel("Team Info:");
              numOfPlayers = new JLabel("No Of Players:");
              playersNum = new JLabel("15 Maximun");
              teamZone = new JLabel("Team Zone:");
              constraints.fill = constraints.VERTICAL;
              constraints.weightx = 1;
              constraints.weighty = 0;
              addComponent(teamID,0,0,1,1);
              constraints.fill = constraints.VERTICAL;
              constraints.weightx = 1;
              constraints.weighty = 0;
              addComponent(teamDesc,1,0,1,1);
              constraints.fill = constraints.VERTICAL;
              constraints.weightx = 1;
              constraints.weighty = 0;
              addComponent(teamInfo,2,0,1,1);
              constraints.fill = constraints.VERTICAL;
              constraints.weightx = 1;
              constraints.weighty = 0;
              addComponent(numOfPlayers,3,0,1,1);
              constraints.fill = constraints.VERTICAL;
              constraints.weightx = 1;
              constraints.weighty = 0;
              addComponent(teamZone,4,0,1,1);
              System.out.println("showing");
              addTeamContent.add(addTeamPanel,BorderLayout.CENTER);
         public void addComponent(Component component,int row,int column,int width,int height)
              System.out.println("adding c");
              constraints.gridx = column;
              constraints.gridy = row;
              constraints.gridwidth = width;
              constraints.gridheight = height;
              gridBag.setConstraints(component,constraints);
              addTeamPanel.add(component);
              addTeamPanel.setVisible(true);
    }

    Hello,
    you are missing only one link, just add following line to your actionPerformed method of DisplayMenuBar class and all problem will be solved
    setContent.validate();
    Actually, Swing component does not updated automatically. when you do any changes to the component layout it will set that component as invalidated component. To update the view you need to call validate() method defined in JComponent class.
    Virus

  • Why the Image dose not show?

    the program can run, however, the image just dose not show on the container, I've mad ....
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.awt.image.*;
    import java.awt.geom.*;
    import javax.imageio.*;
    import java.io.*;
    public class gui extends JFrame{
    private stack s=new stack();
    private queue q1=new queue();
    private queue q2=new queue();
    private JRadioButton rbutton1,rbutton2,rbutton3,rbutton4,rbutton5;
    private JTextArea point1,point2,infoarea;
    private JButton ok ,exit;
    int state=0;
    private JLabel b=new JLabel(new ImageIcon("abc.jpg"));
    public gui() {    
    creatUserInterface();
    private void creatUserInterface(){
    Container contentPane=getContentPane();
    contentPane.setLayout(null);
    b.setBounds(0, 0,127,127);
    contentPane.add(b);
    rbutton1=new JRadioButton();
    rbutton1.setBounds(45, 270, 20,20);
    rbutton1.setBackground(Color.decode("170800"));
    contentPane.add(rbutton1);
    rbutton2=new JRadioButton();
    rbutton2.setBounds(145, 270, 20,20);
    rbutton2.setBackground(Color.decode("170800"));
    contentPane.add(rbutton2);
    rbutton3=new JRadioButton();
    rbutton3.setBounds(245, 270, 20,20);
    rbutton3.setBackground(Color.decode("170800"));
    contentPane.add(rbutton3);
    rbutton4=new JRadioButton();
    rbutton4.setBounds(345, 270, 20,20);
    rbutton4.setBackground(Color.decode("170800"));
    contentPane.add(rbutton4);
    rbutton5=new JRadioButton();
    rbutton5.setBounds(445, 270, 20,20);
    rbutton5.setBackground(Color.decode("170800"));
    contentPane.add(rbutton5);
    point1=new JTextArea();
    point1.setBounds(585, 20, 43, 20);
    contentPane.add(point1);
    point2=new JTextArea();
    point2.setBounds(585, 205, 43, 20);
    contentPane.add(point2);
    infoarea=new JTextArea();
    infoarea.setBounds(30, 300, 450, 100);
    infoarea.setText("click \"ok \" to start game, click \"exit \" to exit");
    contentPane.add(infoarea);
    ok=new JButton();
    ok.setBounds(520, 255, 75, 60);
    ok.setText("OK");
    contentPane.add(ok);
    ok.addActionListener(
    new ActionListener(){
    public void actionPerformed(ActionEvent event){          
    okButton(event);
    exit=new JButton();
    exit.setBounds(520, 340, 75, 65);
    exit.setText("EXIT");
    contentPane.add(exit);
    exit.addActionListener(
    new ActionListener(){
    public void actionPerformed(ActionEvent event){          
    exitButton(event);
    contentPane.setBackground(Color.decode("170800"));
    setTitle("Change it or Not");
    setSize(640, 480);
    setVisible(true);
    Message was edited by:
    explosivealan

    because the code is very long and i just cut the code i think is not related, i post all the code here, should i post the code of stack , queue and others class?My objective is to show all cardLabel as jpg, abc is to test only.
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.awt.image.*;
    import java.awt.geom.*;
    import javax.imageio.*;
    import java.io.*;
    public class gui extends JFrame{
        private stack s=new stack();                                      // a stack with 52 node to store 52 cards
        private queue q1=new queue();                                     // a queue to hold the computer player's cards
        private queue q2=new queue();                                     // a queue to hold the human player's cards
        private cardoperation op=new cardoperation();                    // contain all card operation that require to run the game       
        private handcompare hc=new handcompare();                        // pass two queue to handcompare, if the first queue defealt the second queue, return true, otherwise reture false
        private JLabel cardlabel1,cardlabel2,cardlabel3,cardlabel4,cardlabel5,cardlabel6,cardlabel7,cardlabel8,cardlabel9,cardlabel10;     // label to show the cards
        private JLabel computerpoint,playerpoint,inputbet,dollarsign;        
        private JRadioButton rbutton1,rbutton2,rbutton3,rbutton4,rbutton5;   //radio button for selecting which card to be changed
        private JTextField bet;                                               //Textfield to input the amount of bet
        private JTextArea point1,point2,infoarea;                             //textarea to show player's point and futher infomation;
        private JButton ok ,exit;                                             //button to confirm or to exit game
        int compoint=10000,playpoint=10000;                                    // integer to store the player's current point;'
        int betamount;                                                         // integer to store the current bet amount
        int state=0;                                                           // store the state of the program
        private JLabel b=new JLabel(new ImageIcon("abc.jpg"));
        public gui() {    
            super();
            creatUserInterface();
        private void creatUserInterface(){
        Container contentPane=getContentPane();   
        contentPane.setLayout(null);
        cardlabel1=new JLabel();
        cardlabel1.setBounds(50, 15, 50, 30);
        cardlabel1.setText("");
        contentPane.add(cardlabel1);
        b.setBounds(0, 0,127,127);
        contentPane.add(b);
        cardlabel2=new JLabel();
        cardlabel2.setBounds(150, 15, 50, 30);
        cardlabel2.setText("");
        contentPane.add(cardlabel2);
        cardlabel3=new JLabel();
        cardlabel3.setBounds(250, 15, 50, 30);
        cardlabel3.setText("");
        contentPane.add(cardlabel3);
        cardlabel4=new JLabel();
        cardlabel4.setBounds(350, 15, 50, 30);
        cardlabel4.setText("");
        contentPane.add(cardlabel4);
        cardlabel5=new JLabel();
        cardlabel5.setBounds(450, 15, 50, 30);
        cardlabel5.setText("");
        contentPane.add(cardlabel5);
        cardlabel6=new JLabel();
        cardlabel6.setBounds(50, 200, 50, 30);
        cardlabel6.setText("");
        contentPane.add(cardlabel6);
        cardlabel7=new JLabel();
        cardlabel7.setBounds(150, 200, 50, 30);
        cardlabel7.setText("");
        contentPane.add(cardlabel7);
        cardlabel8=new JLabel();
        cardlabel8.setBounds(250, 200, 50, 30);
        cardlabel8.setText("");
        contentPane.add(cardlabel8);
        cardlabel9=new JLabel();
        cardlabel9.setBounds(350, 200, 50, 30);
        cardlabel9.setText("");
        contentPane.add(cardlabel9);
        cardlabel10=new JLabel();
        cardlabel10.setBounds(450, 200, 50, 30);
        cardlabel10.setText("");
        contentPane.add(cardlabel10);
        rbutton1=new JRadioButton();
        rbutton1.setBounds(45, 270, 20,20);
        rbutton1.setBackground(Color.decode("170800"));
        contentPane.add(rbutton1);
        rbutton2=new JRadioButton();
        rbutton2.setBounds(145, 270, 20,20);
        rbutton2.setBackground(Color.decode("170800"));
        contentPane.add(rbutton2);
        rbutton3=new JRadioButton();
        rbutton3.setBounds(245, 270, 20,20);
        rbutton3.setBackground(Color.decode("170800"));
        contentPane.add(rbutton3);
        rbutton4=new JRadioButton();
        rbutton4.setBounds(345, 270, 20,20);
        rbutton4.setBackground(Color.decode("170800"));
        contentPane.add(rbutton4);
        rbutton5=new JRadioButton();
        rbutton5.setBounds(445, 270, 20,20);
        rbutton5.setBackground(Color.decode("170800"));
        contentPane.add(rbutton5);
        computerpoint=new JLabel();
        computerpoint.setBounds(500, 15, 80, 30);
        computerpoint.setText("computer has");
        contentPane.add(computerpoint);
        playerpoint=new JLabel();
        playerpoint.setBounds(500, 200, 80, 30);
        playerpoint.setText("you have");
        contentPane.add(playerpoint);
        inputbet=new JLabel();
        inputbet.setBounds(500, 90, 130, 20);
        inputbet.setText("please input bet here");
        contentPane.add(inputbet);   
        dollarsign=new JLabel();
        dollarsign.setBounds(510, 115, 20, 20);
        dollarsign.setText("$");
        contentPane.add(dollarsign);   
        point1=new JTextArea();
        point1.setBounds(585, 20, 43, 20);   
        contentPane.add(point1);  
        point2=new JTextArea();
        point2.setBounds(585, 205, 43, 20);
        contentPane.add(point2);  
        infoarea=new JTextArea();
        infoarea.setBounds(30, 300, 450, 100);
        infoarea.setText("click \"ok \" to start game, click \"exit \" to exit");
        contentPane.add(infoarea);
        bet=new JTextField();
        bet.setBounds(530, 115, 60, 20);
        contentPane.add(bet);  
        ok=new JButton();
        ok.setBounds(520, 255, 75, 60);
        ok.setText("OK");
        contentPane.add(ok);
        ok.addActionListener(
                    new ActionListener(){
               public void actionPerformed(ActionEvent event){          
                 okButton(event);
        exit=new JButton();
        exit.setBounds(520, 340, 75, 65);
        exit.setText("EXIT");
        contentPane.add(exit);
        exit.addActionListener(
                    new ActionListener(){
               public void actionPerformed(ActionEvent event){          
                 exitButton(event);
        contentPane.setBackground(Color.decode("170800"));
        setTitle("Change it or Not");
        setSize(640, 480);
        setVisible(true);
        private void displayLabel(){
            int a[]=new int[5];
            int b[]=new int[5];
            String a1[]=new String[5];
            String b1[]=new String[5];
            a=q1.copy_queue();
            b=q2.copy_queue();
            int i;
                for(i=0;i<5;i++){
            if(a%100==13) a1[i]="A";
    else if(a[i]%100>0&&a[i]%100<10)a1[i]=String.valueOf(a[i]%100+1);
    else if(a[i]%100==10)a1[i]="J";
    else if(a[i]%100==11)a1[i]="Q";
    else if(a[i]%100==12)a1[i]="K";
    for(i=0;i<5;i++){
    if(b[i]%100==13) b1[i]="A";
    else if(b[i]%100>0&&b[i]%100<10)b1[i]=String.valueOf(b[i]%100+1);
    else if(b[i]%100==10)b1[i]="J";
    else if(b[i]%100==11)b1[i]="Q";
    else if(b[i]%100==12)b1[i]="K";
    cardlabel1.setText(a1[0]);
    if(a[0]/100==4)
    cardlabel1.setForeground(Color.PINK);
    else if(a[0]/100==3)
    cardlabel1.setForeground(Color.BLUE);
    else if(a[0]/100==2)
    cardlabel1.setForeground(Color.RED);
    else if(a[0]/100==1)
    cardlabel1.setForeground(Color.BLACK);
    cardlabel2.setText(a1[1]);
    if(a[1]/100==4)
    cardlabel2.setForeground(Color.PINK);
    else if(a[1]/100==3)
    cardlabel2.setForeground(Color.BLUE);
    else if(a[1]/100==2)
    cardlabel2.setForeground(Color.RED);
    else if(a[1]/100==1)
    cardlabel2.setForeground(Color.BLACK);
    cardlabel3.setText(a1[2]);
    if(a[2]/100==4)
    cardlabel3.setForeground(Color.PINK);
    else if(a[2]/100==3)
    cardlabel3.setForeground(Color.BLUE);
    else if(a[2]/100==2)
    cardlabel3.setForeground(Color.RED);
    else if(a[2]/100==1)
    cardlabel3.setForeground(Color.BLACK);
    cardlabel4.setText(a1[3]);
    if(a[3]/100==4)
    cardlabel4.setForeground(Color.PINK);
    else if(a[3]/100==3)
    cardlabel4.setForeground(Color.BLUE);
    else if(a[3]/100==2)
    cardlabel4.setForeground(Color.RED);
    else if(a[3]/100==1)
    cardlabel4.setForeground(Color.BLACK);
    cardlabel5.setText(a1[4]);
    if(a[4]/100==4)
    cardlabel5.setForeground(Color.PINK);
    else if(a[4]/100==3)
    cardlabel5.setForeground(Color.BLUE);
    else if(a[4]/100==2)
    cardlabel5.setForeground(Color.RED);
    else if(a[4]/100==1)
    cardlabel5.setForeground(Color.BLACK);
    cardlabel6.setText(b1[0]);
    if(b[0]/100==4)
    cardlabel6.setForeground(Color.PINK);
    else if(b[0]/100==3)
    cardlabel6.setForeground(Color.BLUE);
    else if(b[0]/100==2)
    cardlabel6.setForeground(Color.RED);
    else if(b[0]/100==1)
    cardlabel6.setForeground(Color.BLACK);
    cardlabel7.setText(b1[1]);
    if(b[1]/100==4)
    cardlabel7.setForeground(Color.PINK);
    else if(b[1]/100==3)
    cardlabel7.setForeground(Color.BLUE);
    else if(b[1]/100==2)
    cardlabel7.setForeground(Color.RED);
    else if(b[1]/100==1)
    cardlabel7.setForeground(Color.BLACK);
    cardlabel8.setText(b1[2]);
    if(b[2]/100==4)
    cardlabel8.setForeground(Color.PINK);
    else if(b[2]/100==3)
    cardlabel8.setForeground(Color.BLUE);
    else if(b[2]/100==2)
    cardlabel8.setForeground(Color.RED);
    else if(b[2]/100==1)
    cardlabel8.setForeground(Color.BLACK);
    cardlabel9.setText(b1[3]);
    if(b[3]/100==4)
    cardlabel9.setForeground(Color.PINK);
    else if(b[3]/100==3)
    cardlabel9.setForeground(Color.BLUE);
    else if(b[3]/100==2)
    cardlabel9.setForeground(Color.RED);
    else if(b[3]/100==1)
    cardlabel9.setForeground(Color.BLACK);
    cardlabel10.setText(b1[4]);
    if(b[4]/100==4)
    cardlabel10.setForeground(Color.PINK);
    else if(b[4]/100==3)
    cardlabel10.setForeground(Color.BLUE);
    else if(b[4]/100==2)
    cardlabel10.setForeground(Color.RED);
    else if(b[4]/100==1)
    cardlabel10.setForeground(Color.BLACK);
    point1.setText("$"+String.valueOf(compoint)); //show the value back if player has change it accdentially
    point2.setText("$"+String.valueOf(playpoint));
    if(betamount==0)
    bet.setText("");
    else
    bet.setText(String.valueOf(betamount));
    private void displayHalf(){
    int b[]=new int[5];
    String b1[]=new String[5];
    b=q2.copy_queue();
    int i;
    for(i=0;i<5;i++){
    if(b[i]%100==13) b1[i]="A";
    else if(b[i]%100>0&&b[i]%100<10)b1[i]=String.valueOf(b[i]%100+1);
    else if(b[i]%100==10)b1[i]="J";
    else if(b[i]%100==11)b1[i]="Q";
    else if(b[i]%100==12)b1[i]="K";
    cardlabel6.setText(b1[0]);
    if(b[0]/100==4)
    cardlabel6.setForeground(Color.PINK);
    else if(b[0]/100==3)
    cardlabel6.setForeground(Color.BLUE);
    else if(b[0]/100==2)
    cardlabel6.setForeground(Color.RED);
    else if(b[0]/100==1)
    cardlabel6.setForeground(Color.BLACK);
    cardlabel7.setText(b1[1]);
    if(b[1]/100==4)
    cardlabel7.setForeground(Color.PINK);
    else if(b[1]/100==3)
    cardlabel7.setForeground(Color.BLUE);
    else if(b[1]/100==2)
    cardlabel7.setForeground(Color.RED);
    else if(b[1]/100==1)
    cardlabel7.setForeground(Color.BLACK);
    cardlabel8.setText(b1[2]);
    if(b[2]/100==4)
    cardlabel8.setForeground(Color.PINK);
    else if(b[2]/100==3)
    cardlabel8.setForeground(Color.BLUE);
    else if(b[2]/100==2)
    cardlabel8.setForeground(Color.RED);
    else if(b[2]/100==1)
    cardlabel8.setForeground(Color.BLACK);
    cardlabel9.setText(b1[3]);
    if(b[3]/100==4)
    cardlabel9.setForeground(Color.PINK);
    else if(b[3]/100==3)
    cardlabel9.setForeground(Color.BLUE);
    else if(b[3]/100==2)
    cardlabel9.setForeground(Color.RED);
    else if(b[3]/100==1)
    cardlabel9.setForeground(Color.BLACK);
    cardlabel10.setText(b1[4]);
    if(b[4]/100==4)
    cardlabel10.setForeground(Color.PINK);
    else if(b[4]/100==3)
    cardlabel10.setForeground(Color.BLUE);
    else if(b[4]/100==2)
    cardlabel10.setForeground(Color.RED);
    else if(b[4]/100==1)
    cardlabel10.setForeground(Color.BLACK);
    cardlabel1.setText("");
    cardlabel2.setText("");
    cardlabel3.setText("");
    cardlabel4.setText("");
    cardlabel5.setText("");
    point1.setText("$"+String.valueOf(compoint)); //show the value back if player has change it accdentially
    point2.setText("$"+String.valueOf(playpoint));
    if(betamount==0)
    bet.setText("");
    else
    bet.setText(String.valueOf(betamount));
    private void okButton(ActionEvent event){
    switch(state){
    case(0):{
    op.reshuffle(s);
    op.CardDistribe(s, q1, q2);
    displayHalf();
    infoarea.setText("please input your bet and click \"ok \" \n\nSpace is Black Heart is Red \nClub is Bleu Diamond is Pink");
    break;
    case(1):{  
    try{
    betamount=Integer.parseInt(bet.getText());
    catch(NumberFormatException e){
    infoarea.setText("invaild input, please try again");
    state=state-1;
    if(state==1)
    if(betamount<=0||betamount>playpoint)
    {infoarea.setText("please input between 1 & "+String.valueOf(playpoint));
                           state=state-1;}
    else
    {infoarea.setText("please choose the cards to be changed \n\nSpace is Black    Heart is Red \nClub is Bleu         Diamond is Pink"); 
                           displayLabel();}
    break;
    case(2):{           
    infoarea.setText("choosed card has been changed");
    int a[]=new int[5];
    for(int i=0;i<5;i++)
    a[i]=0;
    if(rbutton1.isSelected())
    a[0]=1;
    if(rbutton2.isSelected())
    a[1]=1;
    if(rbutton3.isSelected())
    a[2]=1;
    if(rbutton4.isSelected())
    a[3]=1;
    if(rbutton5.isSelected())
    a[4]=1;
    op.computerChangeCard(s, q1, hc);
    op.playerChangeCard(s, q2, a);
    displayLabel();
    break;
    case(3):{          
    if(hc.compare(q1, q2)){
    infoarea.setText("you loss\n\nclick \"ok \" to continue");
    playpoint=playpoint-betamount;
    compoint=compoint+betamount;
    else{
    infoarea.setText("you win\n\nclick \"ok \" to continue");
    playpoint=playpoint+betamount;
    compoint=compoint-betamount;
    betamount=0;
    displayLabel();
    if(playpoint<=0)
    infoarea.setText("you have loss the game, press \"ok \" or \"exit \" to end game");
    else if(compoint<=0)
    infoarea.setText("you have win the game, press \"ok \" or \"exit \" to end game");
    else{
    state=-1;
    break;
    case(4):{
    exit(); // player's point <=0, so force to exit'
    default:
    rbutton1.setSelected(false);
    rbutton2.setSelected(false);
    rbutton3.setSelected(false);
    rbutton4.setSelected(false);
    rbutton5.setSelected(false);
    state=state+1;
    private void exitButton(ActionEvent event){
    exit();
    private void exit(){
    System.exit(0);

  • Separator is not showing up in the JList that is set in the TextField

    Hi,
    This problem is really weird and I am tired trying to find the problem and so thought i ll ask u guys... i cant see any problem in the code below.. but when i run it the separator that i want if some condition is true it just dsnt come... i did debug it and it does actually go in the if condition but the separator is not showing up... i dont kno y...
    I am pasting the code of the JList renderer SearchListCellRenderer that implements ListCellRenderer.......it has only one method....
    public Component getListCellRendererComponent(JList list, Object value,
                   int     index, boolean isSelected, boolean cellHasFocus) {
              JLabel label = null;
              if (value != null){
                   label = new JLabel();/*(JLabel) defaultRenderer.getListCellRendererComponent(list, value, index,
                   isSelected, cellHasFocus);*/
                   if(!anatomySeparator && anatomyMap.containsKey(value.toString().toLowerCase())){
                        label.setVerticalTextPosition(SwingConstants.BOTTOM);
                        label.setPreferredSize(new Dimension(300, 80));
                        label.setText("<html><body>" + "<p style='color:white;'><b>--------------Anatomy--------------</b></p>" + "<p style='color:white;'><b>" + value.toString() + "</b></p></body></html>");
                        anatomySeparator = true;
                        logger.debug("in anatomy");
                   }else if(!diseaseSeparator && diseaseMap.containsKey(value.toString().toLowerCase())){
                        label.setVerticalTextPosition(SwingConstants.BOTTOM);
                        label.setPreferredSize(new Dimension(300, 80));
                        label.setText("<html><body>" + "<p style='color:white;'><b>---------------Diseases----------------</b></p>" + "<p style='color:white;'><b>" + value.toString() + "</b></p></body></html>");
                        diseaseSeparator = true;
                        logger.debug("in disease");
                   }else if(!propSeparator && observationMap.containsKey(value.toString().toLowerCase())){
                        label.setVerticalTextPosition(SwingConstants.BOTTOM);
                        label.setPreferredSize(new Dimension(300, 80));
                        label.setText("<html><body>" + "<p style='color:white;'><b>-----------Observations----------------</b></p>" + "<p style='color:white;'><b>" + value.toString() + "</b></p></body></html>");
                        propSeparator = true;
                        logger.debug("in observation");
                   }else{
                        label.setPreferredSize(new Dimension(300, 30));
                        label.setText("<html><body><p style='color:white;'><b>" + value.toString() + "</b></p></body></html>");
              return label;
    If i see the output the list in the JList is bold also in the condition i have the label size larger so in some values the label is actually large than others... that means it does go in the if condition... but the separator that i have there it just dsnt show up... i dnt kno wat is wrong... can anyone pls help me with this????
    This is how i set the autocopleter text field with the Jlist and its renderer... if that is of some help.....
    JList list = new JList();
    JPopupMenu popup = new JPopupMenu();
    JTextComponent textComp;
    private static final String AUTOCOMPLETER = "AUTOCOMPLETER"; //NOI18N
    public SearchListCellRenderer renderer;
    public AutoCompleter(JTextComponent comp){
    textComp = comp;
    textComp.putClientProperty(AUTOCOMPLETER, this);
    JScrollPane scroll = new JScrollPane(list);
    scroll.setBorder(null);
    list.setFocusable( false );
    list.setBackground(Color.DARK_GRAY);
    list.setForeground(Color.WHITE);
    renderer = new SearchListCellRenderer();
    list.setCellRenderer(renderer);
    scroll.getVerticalScrollBar().setFocusable( false );
    scroll.getHorizontalScrollBar().setFocusable( false );
    popup.setBorder(BorderFactory.createLineBorder(Color.black));
    popup.add(scroll);
    if(textComp instanceof JTextField){
    textComp.registerKeyboardAction(showAction, KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0), JComponent.WHEN_FOCUSED);
    textComp.getDocument().addDocumentListener(documentListener);
    }else
    textComp.registerKeyboardAction(showAction, KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, KeyEvent.CTRL_MASK), JComponent.WHEN_FOCUSED);
    textComp.registerKeyboardAction(upAction, KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0), JComponent.WHEN_FOCUSED);
    textComp.registerKeyboardAction(hidePopupAction, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_FOCUSED);
    popup.addPopupMenuListener(new PopupMenuListener(){
    public void popupMenuWillBecomeVisible(PopupMenuEvent e){
    public void popupMenuWillBecomeInvisible(PopupMenuEvent e){
    textComp.unregisterKeyboardAction(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0));
    public void popupMenuCanceled(PopupMenuEvent e){
    list.setRequestFocusEnabled(false);
    }

    If you need further help then you need to create a [Short, Self Contained, Compilable and Executable, Example Program (SSCCE)|http://homepage1.nifty.com/algafield/sscce.html], that demonstrates the incorrect behaviour.
    Don't forget to use the Code Formatting Tags so the posted code retains its original formatting. That is done by selecting the code and then clicking on the "Code" button above the question input area.

  • JTable Problem (table does not show rows and columns)

    Hi All,
    What the table is suppose to do.
    - Load information from a database
    - put all the values in the first column
    - in the second column put combobox (cell editor with numbers 1-12)
    - the 3rd column put another combobox for something else
    - the 4th column uses checkbox as an edit
    The number of rows of the table should be equal to the number of
    record from
    the database. If not given it default to 20 (poor but ok for this)
    The number of columns is 4.
    But the table does not show any rows or
    column when I put it inside a
    JScrollPane (Otherwise it works).
    Please help,
    thanks in advance.
    public class SubjectTable extends JTable {
    * Comment for <code>serialVersionUID</code>
    private static final long serialVersionUID = 1L;
    /** combo for the list of classes */
    protected JComboBox classCombo;
    /** combo for the list of subjects */
    protected JComboBox subjectsCombo;
    /** combo for the list of grade */
    protected JComboBox gradeCombo;
    boolean canResize = false;
    boolean canReorder = false;
    boolean canSelectRow = false;
    boolean canSelectCell = true;
    boolean canSelectColumn = true;
    // the row height of the table
    int rowHeight = 22;
    // the height of the table
    int height = 200;
    // the width of the table
    int width = 300;
    // the size of the table
    Dimension size;
    * Parameterless constructor. Class the one of the other constructors
    to
    * create a table with the a new <code>SubjectTableModel</code>.
    public SubjectTable() {
    this(new SubjectTableModel());
    * Copy constructor to create the table with the given
    * <code>SubjectTableModel</code>
    * @param tableModel -
    * the <code>SubjectTableModel</code> with which to
    initialise
    * the table.
    SubjectTable(SubjectTableModel tableModel) {
    setModel(tableModel);
    setupTable();
    * Function to setup the table's functionality
    private void setupTable() {
    clear();
    // set the row hieght
    this.setRowHeight(this.rowHeight);
    // set the font size to 12
    //TODO this.setFont(Settings.getDefaultFont());
    // disble reordering of columns
    this.getTableHeader().setReorderingAllowed(this.canReorder);
    // disble resing of columns
    this.getTableHeader().setResizingAllowed(this.canResize);
    // enable the horizontal scrollbar
    this.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    // disable row selection
    setRowSelectionAllowed(this.canSelectRow);
    // disable column selection
    setColumnSelectionAllowed(this.canSelectColumn);
    // enable cell selection
    setCellSelectionEnabled(this.canSelectCell);
    setPreferredScrollableViewportSize(getSize());
    TableColumn columns = null;
    int cols = getColumnCount();
    for (int col = 0; col < cols; col++) {
    columns = getColumnModel().getColumn(col);
    switch (col) {
    case 0:// subject name column
    columns.setPreferredWidth(130);
    break;
    case 1:// grade column
    columns.setPreferredWidth(60);
    break;
    case 2:// class room column
    columns.setPreferredWidth(120);
    break;
    case 3:// select column
    columns.setPreferredWidth(65);
    break;
    } // end switch
    }// end for
    // set up the cell editors
    doGradeColumn();
    doClassColumn();
    //doSubjectColumn();
    * Function to clear the table selection. This selection is different
    to
    * <code>javax.swing.JTable#clearSelection()</code>. It clears the
    user
    * input
    public void clear() {
    for (int row = 0; row < getRowCount(); row++) {
    for (int col = 0; col < getColumnCount(); col++) {
    if (getColumnName(getColumnCount() - 1).equals("Select")) {
    setValueAt(new Boolean(false), row, getColumnCount() - 1);
    }// if
    }// for col
    }// for row
    * Function to set the cell renderer for the subjects column. It uses
    a
    * combobox as a cell editor in the teacher's subjects table.
    public void doSubjectColumn() {
    TableColumn nameColumn = getColumnModel().getColumn(0);
    nameColumn.setCellEditor(new DefaultCellEditor(getSubjectsCombo()));
    // set up the celll renderer
    DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
    renderer.setToolTipText("Click for drop down list");
    nameColumn.setCellRenderer(renderer);
    // Set up tool tip for the sport column header.
    TableCellRenderer headerRenderer = nameColumn.getHeaderRenderer();
    if (headerRenderer instanceof DefaultTableCellRenderer) {
    ((DefaultTableCellRenderer) headerRenderer)
    .setToolTipText("Click the Name to see a list of choices");
    }// end doSubjectsColumn----------------------------------------------
    /** Function to set up the grade combo box. */
    public void doGradeColumn() {
    TableColumn gradeColumn = getColumnModel().getColumn(1);
    gradeColumn.setCellEditor(new DefaultCellEditor(getGradeCombo()));
    DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
    renderer.setToolTipText("Click for drop down list");
    gradeColumn.setCellRenderer(renderer);
    // Set up tool tip for the sport column header.
    TableCellRenderer headerRenderer = gradeColumn.getHeaderRenderer();
    if (headerRenderer instanceof DefaultTableCellRenderer) {
    ((DefaultTableCellRenderer) headerRenderer)
    .setToolTipText("Click the Grade to see a list of choices");
    }// end doGradeColumn-------------------------------------------------
    * Function to setup the Class room Column of the subjects
    public void doClassColumn() {
    // set the column for the classroom
    TableColumn classColumn = getColumnModel().getColumn(2);
    classColumn.setCellEditor(new DefaultCellEditor(getClassCombo()));
    DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
    renderer.setToolTipText("Click for drop down list");
    classColumn.setCellRenderer(renderer);
    // Set up tool tip for the sport column header.
    TableCellRenderer headerRenderer = classColumn.getHeaderRenderer();
    if (headerRenderer instanceof DefaultTableCellRenderer) {
    ((DefaultTableCellRenderer) headerRenderer)
    .setToolTipText("Click the Class to see a list of choices");
    }// end doClassColumn--------------------------------------------------
    * Function to get the size of the table
    * @return Returns the size.
    public Dimension getSize() {
    if (this.size == null) {
    this.size = new Dimension(this.height, this.width);
    return this.size;
    * Function to set the size of the table
    * @param dim
    * The size to set.
    public void setSize(Dimension dim) {
    if (dim != null) {
    this.size = dim;
    return;
    * Function to create/setup the class room comboBox. If the comboBox
    is
    * <code>null</code> a nwew one is created else the functon returns
    the
    * function that was returned initially.
    * @return Returns the classCombo.
    private JComboBox getClassCombo() {
    if (this.classCombo == null) {
    this.classCombo = new JComboBox();
    // fill up the class name combo
    ArrayList classRooms = new ArrayList();
    try {
    //TODO classRooms = Settings.getDatabase().getClassRooms();
    for (int i = 0; i < 10; i++) {
    String string = new String("Class");
    string += i;
    if (!classRooms.isEmpty()) {
    classRooms.trimToSize();
    for (int i = 0; i < classRooms.size(); i++) {
    this.classCombo.addItem(classRooms.get(i));
    } catch (Exception e) {
    e.printStackTrace();
    return this.classCombo;
    * Function to create/setup the subjects comboBox. If the comboBox is
    * <code>null</code> a nwew one is created else the functon returns
    the
    * function that was returned initially.
    * @return Returns the subjectsCombo.
    private JComboBox getSubjectsCombo() {
    if (this.subjectsCombo == null) {
    this.subjectsCombo = new JComboBox();
    try {
    ArrayList subjects = loadSubjectsFromDatabase();
    if (!subjects.isEmpty()) {
    Iterator iterator = subjects.iterator();
    while (iterator.hasNext()) {
    // create a new subject instance
    //TODO Subject subct = new Subject();
    // typecast to subject
    //TODO subct = (Subject) iterator.next();
    String name = (String) iterator.next();
    // add this subject to the comboBox
    //TODO this.subjectsCombo.addItem(subct.getName());
    subjectsCombo.addItem(name);
    }// end while
    }// end if
    else {
    JOptionPane.showMessageDialog(SubjectTable.this,
    "Subjects List Could Not Be Filled");
    System.out.println("Subjects List Could Not Be Filled");
    } catch (Exception e) {
    e.printStackTrace();
    return this.subjectsCombo;
    * Function to load subjects from the <code>Database</code>
    * @return Returns the subjects.
    private ArrayList loadSubjectsFromDatabase() {
    // list of all the subject that the school does
    ArrayList subjects = new ArrayList();
    try {
    //TODO to be removed later on
    for (int i = 0; i < 10; i++) {
    String string = new String("Subject");
    string += i;
    subjects.add(i, string);
    // set the school subjects
    //TODO subjects = Settings.getDatabase().loadAllSubjects();
    } catch (Exception e1) {
    e1.printStackTrace();
    return subjects;
    * Function to create/setup the grade comboBox. If the comboBox is
    * <code>null</code> a nwew one is created else the functon returns
    the
    * function that was returned initially.
    * @return Returns the gradeCombo.
    private JComboBox getGradeCombo() {
    if (this.gradeCombo == null) {
    this.gradeCombo = new JComboBox();
    // fill with grade 1 to 12
    for (int i = 12; i > 0; i--) {
    this.gradeCombo.addItem(new Integer(i).toString());
    return this.gradeCombo;
    public static void main(String[] args) {
    try {
    UIManager.setLookAndFeel(new Plastic3DLookAndFeel());
    System.out.println("Look and Feel has been set");
    } catch (UnsupportedLookAndFeelException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    SubjectTableModel model = new SubjectTableModel();
    int cols = model.getColumnCount();
    int rows = model.getRowCount();
    Object[][] subjects = new Object[rows][cols];
    for (int row = 0; row < rows; row++) {
    subjects[row][0] = new String("Subjectv ") + row;
    }//for
    model.setSubjectsList(subjects);
    SubjectTable ttest = new SubjectTable(model);
    JFrame frame = new JFrame("::Table Example");
    JScrollPane scrollPane = new JScrollPane();
    scrollPane.setViewportView(ttest);
    frame.getContentPane().add(scrollPane);
    frame.pack();
    frame.setVisible(true);
    **************************************END
    TABLE******************************
    ----------------------------THE TABLE
    MODEL----------------------------------
    * Created on 2005/03/21
    * SubjectTableModel
    package com.school.academic.ui;
    import javax.swing.table.AbstractTableModel;
    * Class extending the <code>AbstractTableModel</code> for use in
    creating the
    * <code>Subject</code>s table. In addition to the implemented methods
    of
    * <code>AbstractTableModel</code> The class creates a model that has
    initial
    * values - the values have their own <code>getter</code> and
    * <code>setter</code> methods - but can still be used for values that
    a user
    * chooses.
    * <p>
    * @author Khusta
    public class SubjectTableModel extends AbstractTableModel {
    * Comment for <code>serialVersionUID</code>
    private static final long serialVersionUID = 3257850978324461113L;
    /** Column names for the subjects table */
    String[] columnNames = { "Subject", "Grade", "Class Room",
    "Select" };
    /** Array of objects for the subjects table */
    Object[][] subjectsList;
    private int totalRows = 20;
    protected int notEditable = 0;
    * Parameterless constructor.
    public SubjectTableModel() {
    // TODO initialise the list
    // add column to the default table model
    this.subjectsList = new
    Object[getTotalRows()][getColumnNames().length];
    * Copy constructor with the <code>subjectList</code> to set
    * @param subjects
    public SubjectTableModel(Object[][] subjects) {
    this(0, null, subjects, 0);
    * Copy constructor with the initial number of row for the model
    * @param rows -
    * the initial rows of the model
    * @param cols -
    * the initial columns of the model
    * @param subjects -
    * the initial subjects for the model
    * @param edit - the minimum number of columns that must be
    uneditable
    public SubjectTableModel(int rows, String[] cols, Object[][]
    subjects, int edit) {
    // set the initial rows
    setTotalRows(rows);
    // set the column names
    setColumnNames(cols);
    // set the subjectlist
    setSubjectsList(subjects);
    //set not editable index
    setNotEditable(edit);
    * Function to get the total number of columns in the table
    * @return int -- the columns in the table
    public int getColumnCount() {
    if (this.subjectsList == null) {
    return 0;
    return getColumnNames().length;
    * Function to get the total number of rows in the table
    * @return int -- the rows in the table
    public int getRowCount() {
    if (this.subjectsList == null) {
    return 0;
    return this.subjectsList.length;
    * Function to get the name of a column in the table.
    * @param col --
    * the column to be named
    * @return String -- the column in the table
    public String getColumnName(int col) {
    if (getColumnNames()[col] != null) {
    return getColumnNames()[col];
    return new String("...");
    * Function to get the value of the given row.
    * @param row --
    * the row of the object.
    * @param col --
    * the col of the object.
    * @return Object -- the value at row, col.
    public Object getValueAt(int row, int col) {
    return getSubjectsList()[row][col];
    * Function to return the data type of the given column.
    * @param c --
    * the column whose type must be determined.
    * @return Class -- the type of the object in this col.
    public Class getColumnClass(int c) {
    if (getValueAt(0, c) != null) {
    return getValueAt(0, c).getClass();
    return new String().getClass();
    * Function to put a value into a table cell.
    * @param value --
    * the object that will be put.
    * @param row --
    * the row that the object will be put.
    * @param col --
    * the col that the object will be put.
    public void setValueAt(Object value, int row, int col) {
    * TODO: Have a boolean value to determine whether to clear or
    to set.
    * if true clear else set.
    if (value != null) {
    if (getSubjectsList()[0][col] instanceof Integer
    && !(value instanceof Integer)) {
    try {
    getSubjectsList()[row][col] = new
    Integer(value.toString());
    fireTableCellUpdated(row, col);
    } catch (NumberFormatException e) {
    * JOptionPane .showMessageDialog( this., "The \""
    +
    * getColumnName(col) + "\" column accepts only
    values
    * between 1 - 12");
    return;
    System.out.println("Value = " + value.toString());
    System.out.println("Column = " + col + " Row = " + row);
    // column = Grade or column = Select
    switch (col) {
    case 2:
    try {
    // TODO
    if (Boolean.getBoolean(value.toString()) == false
    && getValueAt(row, 0) != null
    && getValueAt(row, 1) != null
    && getValueAt(row, 2) != null) {
    // subjectsList[row][col + 1] = new
    Boolean(true);
    System.out.println("2. false - Updated...");
    * this.subjectListModel.add(row,
    * this.subjectsList[row][0] + new String(" -
    ") +
    * this.subjectsList[row][2]);
    } catch (ArrayIndexOutOfBoundsException exception) {
    exception.printStackTrace();
    break;
    case 3:
    if (Boolean.getBoolean(value.toString()) == false
    && getValueAt(row, 0) != null
    && getValueAt(row, 1) != null
    && getValueAt(row, 2) != null) {
    System.out.println("3. If - Added...");
    getSubjectsList()[row][3] = new Boolean(true);
    this.subjectListModel.addElement(this.subjectsList[row][0] +
    * new String(" - ") + this.subjectsList[row][2]);
    // subjectListModel.remove(row);
    fireTableCellUpdated(row, col);
    fireTableDataChanged();
    // this.doDeleteSubject();
    } else if (Boolean.getBoolean(value.toString()) ==
    true
    && getValueAt(row, 0) != null
    && getValueAt(row, 1) != null
    && getValueAt(row, 2) != null) {
    setValueAt("", row, col - 1);
    setValueAt("", row, col - 2);
    setValueAt("", row, col - 3);
    System.out.println("3. Else - Cleared...");
    // this.subjectListModel.remove(row);
    break;
    default:
    break;
    }// end switch
    getSubjectsList()[row][col] = value;
    fireTableCellUpdated(row, col);
    fireTableDataChanged();
    }// end if
    }// end
    * Function to enable edition for all the columns in the table
    * @param row --
    * the row that must be enabled.
    * @param col --
    * the col that must be enabled.
    * @return boolean -- indicate whether this cell is editble or
    not.
    public boolean isCellEditable(int row, int col) {
    if (row >= 0
    && (col >= 0 && col <= getNotEditable())) {
    return false;
    return true;
    * Function to get the column names for the model
    * @return Returns the columnNames.
    public String[] getColumnNames() {
    return this.columnNames;
    * Function to set the column names for the model
    * @param cols
    * The columnNames to set.
    public void setColumnNames(String[] cols) {
    // if the column names are null the default columns are used
    if (cols != null) {
    this.columnNames = cols;
    * Function to get the rows of subjects for the model
    * @return Returns the subjectsList.
    public Object[][] getSubjectsList() {
    if (this.subjectsList == null) {
    this.subjectsList = new
    Object[getTotalRows()][getColumnNames().length];
    return this.subjectsList;
    * Function to set the subjects list for the model
    * @param subjects
    * The subjectsList to set.
    public void setSubjectsList(Object[][] subjects) {
    // if the subject list is null create a new one
    // using default values
    if (subjects == null) {
    this.subjectsList = new
    Object[getTotalRows()][getColumnNames().length];
    return;
    this.subjectsList = subjects;
    * Function to get the total number of rows for the model. <b>NB:
    </b> This
    * is different to <code>
    getRowCount()</code>.<code>totalRows</code>
    * is the initial amount of rows that the model must have before
    data can be
    * added.
    * @return Returns the totalRows.
    * @see #setTotalRows(int)
    public int getTotalRows() {
    return this.totalRows;
    * Function to set the total rows for the model.
    * @param rows
    * The totalRows to set.
    * @see #getTotalRows()
    public void setTotalRows(int rows) {
    // if the rows are less than 0 the defaultRows are used
    // set getTotalRows
    if (rows > 0) {
    this.totalRows = rows;
    * Function to get the number of columns that is not editble
    * @return Returns the notEditable.
    public int getNotEditable() {
    return this.notEditable;
    * Function to set the number of columns that is not editable
    * @param notEdit The notEditable to set.
    public void setNotEditable(int notEdit) {
    if (notEdit < 0) {
    notEdit = 0;
    this.notEditable = notEdit;
    ----------------------------END TABLE MODEL----------------------------------

    I hope you don't expect us to read hundreds of lines of unformatted code? Use the "formatting tags" when you post.
    Why are you creating your own TableModel? It looks to me like the DefaultTableModel will store you data. Learn how to use JTable with its DefaultTableModel first. Then if you determine that DefaultTableModel doesn't provide the required functionality you can write your own model.

  • Alt text of image tooltip not showing for some cases

    Hello,
    I have followed the following steps in adding the alt text of images. Adobe Acrobat X Pro * Add alternate text and supplementary information to tags
    However, there is a weird case where the tooltip of the alt text is not shown on hover for a specific page (page 5 of the attached PDF)
    http://s000.tinyupload.com/?file_id=63161349344665038065
    Please advise if there is something wrong with the PDF that is causing Reader to not show the alt text for the images in that certain page. (and if the PDF should be fixed or is Reader the one that has a problem).
    Thanks

    RamaRao.G wrote:
    I added a JInternalframe on south side of a JFrame.Well, that's plain wrong. JInternalFrame is meant to be added to a JDesktopPane.
    I added mouse listeners to JFrame. In mouse release I am placing one image at mouse release x,y location by following statement.
    g2.drawImage(bitmapImage, x, y, w , h, null)
    Problem is when I do mouse release just near to JInternalFrame component which added south side of main Jframe.
    showing some part of image on south panel for a sec and then going back. Directly It should to go back side JFrame .
    It should not appear on JInternalFrame even for fraction of sec also.To get better help sooner, post a [_SSCCE_|http://mindprod.com/jgloss/sscce.html] that clearly demonstrates your problem.
    Use code tags to post codes -- [code]CODE[/code] will display asCODEOr click the CODE button and paste your code between the {code} tags that appear.
    db

  • Ebay searches not showing images

    When viewing my messages from ebay in hotmail the images are not showing up until I refresh at least two or three plus times. Why is this?

    just work on getting one simple image to .jar OK
    e.g. this should .jar OK (after changing image names)
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    class Testing
      Image img;
      public void buildGUI()
        try
          java.net.URL url = new java.net.URL(getClass().getResource("Test.gif"), "Test.gif");
          if(url != null) img = javax.imageio.ImageIO.read(url);
        catch(Exception e){}//swallow exception - handled in paintComponent
        JPanel p = new JPanel(){
          public void paintComponent(Graphics g){
            super.paintComponent(g);
            if(img != null) g.drawImage(img,100,100,this);
            else g.drawString("this space for rent",100,100);
        JFrame f = new JFrame();
        f.getContentPane().add(p);
        f.setSize(400,300);
        f.setLocationRelativeTo(null);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
      public static void main(String[] args)
        SwingUtilities.invokeLater(new Runnable(){
          public void run(){
            new Testing().buildGUI();
    }put the image in the same folder, make .jar, then try the .jar on another pc
    if all OK, change code to locate image file in subfolder, make .jar, then try the .jar on another pc
    if all OK now, modify main program accordingly.
    note: in .jars, capitalization of the image file names counts
    e.g. in my above example, if I change Test.gif to test.gif, the image is not drawn

Maybe you are looking for

  • Events vs projects files---am i using twice the hard drive space?

    If i have a movie in events file...then move it to projects file, does it utilize twice as much hard drive space becuase there are two movies--one in each file?

  • Problems Enrolling on OLM E-Learning

    We are trying to implement the e-learning package within OLM in our Trust, however we get this error message whenever we either try to self-enrol or mass enrol anyone. "The business group for the enrollment does not match the business group for the l

  • How to programmatically read ATC Findings ?

    ABAP Test Cockpit (ATC) results (findings) are extremely relevant and even if the online transactions SE80 and ATC provide great enjoy transaction with interactive ALV, it would be useful to access the data programmatically for example to create an h

  • Number for support in sydney australia?

    Can anybody help me with a number for Adobe Business Catalyst account support? Thanks --dust

  • Place contacts into a group

    How can I place a group of contacts into a folder to email all with one contact selection?