• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Getting the TwoButtons to add the gradient circle to the panel

 
Greenhorn
Posts: 3
Mac OS X Safari Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thank you, that did the trick...


Java Greenhorn needs help,

I created this based on some other code I found when I searched for TwoButtons in some of the forums.
It compiles OK and does not throw any exceptions a run time, but does not draw a gradient circle either.
Line 21 & 24 is not working, I'm obviously missing something. Can some one please give me some guidence, please?
other than my issue I like this code better than the Head First Java book example with inner classes...

------ TwoButtons.java -------

1 import java.awt.*;
2 import java.awt.event.*;
3 import javax.swing.*;
4 public class TwoButtons extends JFrame implements ActionListener
5 {
6 JButton colorButton ;
7 JButton labelButton ;
8 JLabel label;
9 String x = "flip";
10
11 // constructor for TwoButtons
12 public TwoButtons()
13 {
14 colorButton = new JButton("Change Circle Color");
15 labelButton = new JButton("Change Label Text");
16
17 colorButton.setActionCommand( "circle" ); // set the command
18 labelButton.setActionCommand( "label" ); // set the command
19 label = new JLabel("I'm a Label");
20 label.setPreferredSize(new Dimension(100, 70));
21 MyCircleG drawcircle = new MyCircleG();
22
23 getContentPane().setLayout( new FlowLayout() );
24 getContentPane().add( drawcircle );
25 getContentPane().add( labelButton );
26 getContentPane().add( label );
27 getContentPane().add( colorButton );
28 // register the buttonDemo frame
29 // as the listener for both Buttons.
30 colorButton.addActionListener( this );
31 labelButton.addActionListener( this );
32 //getContentPane().setBackground( Color.yellow );
33 }
34 public void actionPerformed( ActionEvent evt)
35 {
36 // check which command has been sent
37 if ( evt.getActionCommand().equals( "circle" ) ) {
38 // getContentPane().setBackground( Color.red );
39 repaint(); }
40 if ( evt.getActionCommand().equals( "label" ) ) {
41 if (x == "flip") {
42 label.setText("Label Changed!");
43 x = "flop";
44 }else {
45 x = "flip";
46 label.setText("I'm a Label");
47 } }
48 }
49 public static void main ( String[] args )
50 {
51 TwoButtons demo = new TwoButtons() ;
52 WindowQuitter wquit = new WindowQuitter();
53 demo.addWindowListener( wquit );
54 demo.setSize( 500, 500 );
55 demo.setVisible( true );
56 }
57 }
58 class WindowQuitter extends WindowAdapter
59 {
60 public void windowClosing( WindowEvent e )
61 {
62 System.exit( 0 );
63 }
64 }

-------- MyCircleG.java ------

1 import java.awt.*;
2 import javax.swing.*;
3
4 class MyCircleG extends JPanel {
5
6 public void paintComponent(Graphics g) {
7
8 Graphics2D g2d = (Graphics2D) g;
9
10 int red = (int) (Math.random() * 256);
11 int green = (int) (Math.random() * 256);
12 int blue = (int) (Math.random() * 256);
13 Color startColor = new Color(red, green, blue);
14
15 red = (int) (Math.random() * 256);
16 green = (int) (Math.random() * 256);
17 blue = (int) (Math.random() * 256);
18 Color endColor = new Color(red, green, blue);
19
20 GradientPaint gradient= new GradientPaint(70,70,startColor, 150, 150, endColor);
21 g2d.setPaint(gradient);
22 g2d.fillOval(70,70,100,100);
23
24 } // End method
25
26 } // End class
 
Ranch Hand
Posts: 4632
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
MyCircleG is a JPanel with no components,
therefore its preferred size is 0,0

include a constructor in the class and add this line
setPreferredSize(new Dimension(400,300));

where 400,300 is anything you want
 
Marshal
Posts: 79239
377
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Welcome to the Ranch

I shall move you to the GUIs forum, where we usually discuss such questions.
 
Don't get me started about those stupid light bulbs.
reply
    Bookmark Topic Watch Topic
  • New Topic