저는 게임에서 일하고 있습니다. 메뉴에 대해서는 Canvas
es를 사용하여 해당 메뉴의 내용을 그렸습니다.캔버스 문자열 클릭 감지
옵션 및 버튼의 경우 캔버스에서 그래픽을 사용하여 문자열을 그립니다. 문자열을 클릭하는 마우스를 감지하는 방법?
옵션 캔버스 :
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
public class OptionsScreen extends Canvas{
private static final long serialVersionUID = 1L;
private Mouse ms = new Mouse();
private int optionPos = 275;
private int volLev = 100;
private int screenX = 800;
private int screenY = 600;
private JFrame mainWindow;
public OptionsScreen(JFrame f)
{
mainWindow = f;
}
public void paint(Graphics g) {
g.setFont(new Font("JI-Pelter", Font.PLAIN, 24));
g.setColor(Color.lightGray);
//Draw strings
//Music and Sound
g.drawString("Music:", optionPos, 150); g.setColor(Color.yellow); g.drawString("On", optionPos + 100, 150); g.setColor(Color.white); g.drawString("Off", optionPos + 175, 150); g.setColor(Color.lightGray);
g.drawString("Sound:", optionPos, 200); g.setColor(Color.yellow); g.drawString("On", optionPos + 100, 200); g.setColor(Color.white); g.drawString("Off", optionPos + 175, 200); g.setColor(Color.lightGray);
g.drawString("Volume Level:", optionPos, 250); g.setColor(Color.white); g.drawString(volLev + "%", optionPos + 175, 250); g.setColor(Color.lightGray);
//OpenGL Settings
g.drawString("Advanced OpenGL:", optionPos, 300); g.setColor(Color.white); g.drawString("On", optionPos + 225, 300); g.setColor(Color.yellow); g.drawString("Off", optionPos + 300, 300); g.setColor(Color.lightGray);
//Screen Settings
g.drawString("Game Resolution:", optionPos, 350); g.setColor(Color.white); g.drawString(screenX + "x" + screenY, optionPos + 200, 350); g.setColor(Color.lightGray);
this.addMouseListener(ms);
}
}
class Mouse implements MouseListener
{
@Override
public void mouseClicked(MouseEvent arg0) {
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
Swing 구성 요소 (예 :'JFrame')와 AWT 구성 요소 (예 :'Canvas')를 함께 사용하지 마십시오. * "(나중에 코드)"* (Answers later) –
페인트 방법은 페인팅을위한 것입니다. 다른 방향으로 : 청취자 등록은 다른 곳에서 (한 번만)해야합니다. – kleopatra
왜 바퀴를 다시 발명합니까? 그 모든 핵심적인 세부 사항을 수행하는 구성 요소가 있습니다 (버튼 f.i.) – kleopatra