fredrija Skrevet 20. april 2007 Skrevet 20. april 2007 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.
krigun Skrevet 20. april 2007 Skrevet 20. april 2007 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); }
fredrija Skrevet 20. april 2007 Forfatter Skrevet 20. april 2007 oi. tusen takk. det hjalp veldig mye
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå