Gå til innhold

Anbefalte innlegg

hei.

skal lage en meny i java, til et spill. dette skal være en vanlig meny med ett bilde i bakgrunnen og knapper oppå bilder. knappene er som følger:

 

new game

options

highscore

exit

 

hvordan skal dette gjøres?

 

jeg fikk bare bildet frem, så kom knappen under. og det kom bare en knapp. denne knappen plaserte seg midt i fram'en som jeg lagde.

går det an å gi kordinater til JButtons, slik at man kan velge hvor i JFram'en de skal bevinne seg? og få de til å plassere seg oppå bildet og ikke under.

 

:hmm:

Lenke til kommentar
Videoannonse
Annonse

Siden det er fredag...

 

Klikk for å se/fjerne innholdet nedenfor

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.util.ArrayList;

import javax.swing.JFrame;

@SuppressWarnings("serial")
public class UITest extends JFrame implements UIListener {

public static void main(String[]args) {
 new UITest();
}

public UITest() {
 UICanvas c = new UICanvas(this);
 
 c.addButton(new UIButton("new_game", 100, 100, 100, 30, "New Game"));
 c.addButton(new UIButton("highscore", 100, 200, 100, 30, "Highscore"));
 
 this.getContentPane().add(c);
 this.setSize(640, 480);
 this.setVisible(true);
 
 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void buttonClicked(String buttonName) {
 System.out.println(buttonName + " was clicked..");
}

class UICanvas extends Canvas implements MouseListener, MouseMotionListener {
 private ArrayList<UIButton> buttons;
 private UIListener uiListener;
 
 public UICanvas(UIListener uiListener) {
 	buttons = new ArrayList<UIButton>();
 	this.uiListener = uiListener;
 	this.addMouseListener(this);
 	this.addMouseMotionListener(this);
 }
 
 public void addButton(UIButton uiButton) {
 	buttons.add(uiButton);
 }
 
 public void paint(Graphics g) {
 	g.clearRect(0, 0, this.getWidth(), this.getHeight());
 	
 	for(UIButton uiButton : buttons) {
   uiButton.paint((Graphics2D)g);
 	}
 }

 public void mouseClicked(MouseEvent mouseEvent) {
 	for(UIButton uiButton : buttons) {
   if(uiButton.isHit(mouseEvent.getX(), mouseEvent.getY())) {
   	uiButton.setFill(new Color(0x0000FF));
   	uiListener.buttonClicked(uiButton.getName());
   }
 	}
 	repaint();
 }
 public void mouseEntered(MouseEvent mouseEvent) {}
 public void mouseExited(MouseEvent mouseEvent) {}
 public void mousePressed(MouseEvent mouseEvent) {}
 public void mouseReleased(MouseEvent mouseEvent) {}
 public void mouseDragged(MouseEvent mouseEvent) {}
 public void mouseMoved(MouseEvent mouseEvent) {
 	for(UIButton uiButton : buttons) {
   if(uiButton.isHit(mouseEvent.getX(), mouseEvent.getY())) 
   	uiButton.setFill(new Color(0xFF0000));
   else
   	uiButton.setFill(new Color(0x000000));
 	}
 	repaint();
 }
}

class UIButton {
 private int x, y, width, height;
 private Rectangle bounds;
 private String text, name;
 private Color fill = new Color(0x000000);
 
 public UIButton(String name, int x, int y, int width, int height, String text) {
 	this.x = x; this.y = y; this.width = width; this.height = height;
 	this.text = text; this.name = name;
 	bounds = new Rectangle(x, y, width, height);
 }
 
 public void paint(Graphics2D g) {
 	g.setColor(fill);
 	g.fillRect(x, y, width, height);
 	g.setColor(new Color(0x00FF00));
 	g.drawString(text, x + 10, y + 20);
 }
 
 public boolean isHit(int x, int y) {
 	return bounds.contains(x, y);
 }
 
 public String getName() {
 	return name;
 }
 
 public void setFill(Color fill) {
 	this.fill = fill;
 }
}
}

 

og..

 

Klikk for å se/fjerne innholdet nedenfor

public interface UIListener {
public void buttonClicked(String buttonName);
}

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...