Solved

my button do not appear but when I resize my window the button appears

Posted on 2002-07-23
7
260 Views
Last Modified: 2010-03-31
I am beginner in java(SWING) but I have got a small problem with repaint() or refresh(). When I try to Add a new JButton during execution, my button do not appear but when I resize my window the button appears.  can I execute this refresh manually (howto)?    Thank in advance.    bye
0
Comment
Question by:zoltix
7 Comments
 
LVL 2

Accepted Solution

by:
flumpman earned 50 total points
ID: 7171806
Try revalidating the container that you are adding the button to. (public void revalidate() in JComponent)

--
flumpman
0
 
LVL 2

Expert Comment

by:s_lavie
ID: 7171821
or
repaint();
0
 

Author Comment

by:zoltix
ID: 7171831
I can't find revalidate() because i use component and Jframe.   In Jframe I found validate and it s Ok.  What is the diffenrence between validate, revalidate?
0
Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

 
LVL 2

Expert Comment

by:s_lavie
ID: 7171841
You should use JComponent and not Component.
For what object you use Component?
Mix of awt and swing objects is a bad idea...
0
 
LVL 2

Expert Comment

by:flumpman
ID: 7171896
s_lavie is correct, that you shouldn't mix Components and JComponents.  However, when you say you are using a Component, is this the contentPane of the JFrame (java.awt.Component->java.awt.Container)?

If so, you can create a new JPanel and set the contentPane to be the JPanel you created.

Have a look at the following code example.  It shows a JFrame and adds a button which allows you to add another button which adds others ad infinitum...

Disclaimer: this is just an example it is not production worthy code :^)

------

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class AddButtonExample extends JFrame {
     
     JPanel mainPanel;
     JButton addButton;
     
     public AddButtonExample(String title) {
          super(title);
         
          addWindowListener(new WindowAdapter() {
               public void windowClosing(WindowEvent e) {
                    System.exit(0);
               }
          });
         
          mainPanel = new JPanel();
          setContentPane(mainPanel);
         
          addButton = new JButton("Add JButton");
         
          addButton.addActionListener(new ActionListener() {
               public void actionPerformed(ActionEvent e) {
                    JButton anotherButton = new JButton("Add another");
                    mainPanel.add(anotherButton);
                    anotherButton.addActionListener(this);
//                    mainPanel.repaint();
                    mainPanel.revalidate();
               }
          });
         
          mainPanel.add(addButton);
     }
     
     public static void main(String[] args) {
          AddButtonExample example = new AddButtonExample("Add Button Example");
          example.setSize(400, 200);
          example.setVisible(true);
     }
}


Note that repaint doesn't cause the new JButton to be shown - revalidate does

--
flumpman
0
 

Expert Comment

by:ucero007
ID: 7174103
Make the component invisible and visible

  //
  component.setVisible(false);
  component.setVisible(true);
  //
0
 
LVL 3

Expert Comment

by:yasser_helmy
ID: 7174186
use setVisible(true), show().
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
This theoretical tutorial explains exceptions, reasons for exceptions, different categories of exception and exception hierarchy.
This video teaches viewers about errors in exception handling.

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

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

Join & Ask a Question