Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

need help with graphics problem

 
Willie Tsang
Greenhorn
Posts: 24
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
my program can run, but some of the vehicle it spawns are cut off in the output. Can someone help me find my problem?

purpose of program: randomly spawns 10 vehicle in random positions.(cars or trucks)











Thanks alot for any help.
 
Mohamed Sanaulla
Saloon Keeper
Posts: 3159
33
Google App Engine Java Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I think this would better sit in the Swing forum, hence moving it.
 
Rob Spoor
Sheriff
Pie
Posts: 20495
54
Chrome Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You are trying to draw the trucks and cars outside their own bounds. You think they will fit because of the call to setBounds, but the layout manager (GridLayout) ignores that and sets new bounds based on the frame size and number of vehicles.
 
Willie Tsang
Greenhorn
Posts: 24
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for the reply. I tried changing the layout manager and the bounds, but then if i don't use grided layout, only one vehicle will show up. Can you tell me which should i use, or change?
 
Rob Camick
Ranch Hand
Posts: 2539
9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
purpose of program: randomly spawns 10 vehicle in random positions.(cars or trucks)


Your custom painting is wrong. For example you set the size of your Car to be (80, 55). But then you randomly generate x/y to be between 100/300. So if x/y are (100, 300) then the painting of your cars is done outside the bounds of your Car. Instead your Car painting should always be done from (0, 0). Then to position your cars on the parent panel you use the setLocation(x, y) of the Car.

The code should be something like:





only one vehicle will show up.


Another problem is that panels are opaque, which means that you can't see through the panel so all the panels will paint on top of one another.

Instead try extending JComponent. By default a JComponent doesn't paint a background so you should be able to see all Vehicles separately.
 
Willie Tsang
Greenhorn
Posts: 24
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks so much, i finally got it to work....
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic