嘿,我正在创建一个类似于java的farmville的游戏,我只是想知道如何实现用户通常会点击的交互式对象/按钮来与游戏交互客户。为java游戏创建一个交互式图形用户界面
我不想使用swing库(通用窗口看起来很像对象),我想为我的按钮导入自定义图像并将属性分配给那些将用于GUI的图像。
有什么建议吗?任何指针?我似乎无法通过youtube或其他Java游戏网站找到这些信息,因为它们只是展示了使用swing的简单示例。
任何帮助将深表感谢!
问候 加雷思
嘿,我正在创建一个类似于java的farmville的游戏,我只是想知道如何实现用户通常会点击的交互式对象/按钮来与游戏交互客户。为java游戏创建一个交互式图形用户界面
我不想使用swing库(通用窗口看起来很像对象),我想为我的按钮导入自定义图像并将属性分配给那些将用于GUI的图像。
有什么建议吗?任何指针?我似乎无法通过youtube或其他Java游戏网站找到这些信息,因为它们只是展示了使用swing的简单示例。
任何帮助将深表感谢!
问候 加雷思
您可以使用JButton,只是覆盖paint
函数。并画出你想要的东西。这需要一段时间,直到你第一次得到它如何工作。我建议你阅读一下event-dispatching thread
(here是java的解释)
这里是我写的一些代码,所以你有一个简单的参考。
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Test extends JButton implements ActionListener{
private static final long serialVersionUID = 1L;
Image img;
/** constuctor **/
public Test(String tImg, JFrame parent){
this.img = new ImageIcon(tImg).getImage();
this.addActionListener(this);
}
/*********** this is the function you want to learn ***********/
@Override
public void paint(Graphics g){
g.drawImage(this.img, 0, 0, null);
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO do some stuff when its clicked
JOptionPane.showMessageDialog(null, "you clicked the button");
}
public static void main(String[] args) {
JFrame f = new JFrame();
Test t = new Test("pics.gif", f);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLayout(new GridLayout(1, 1));
f.add(t);
f.setSize(400,600);
f.setVisible(true);
}
}
为什么在不调用super.paint()的情况下对JButton进行subclsasing和重写paint?我认为这不会起作用。 为什么不使用带有Icon的JButton构造函数? http:// leepoint。net/notes-java/GUI/components/20buttons/23buttonicons.html –
-1 1)为什么重写'paint(Graphics)'而不是'paintComponent(Graphics)'? 2)你为什么要扩展'JButton'?它有方法来设置图像的一些不同的用途(请参阅我的链接示例)。 –
“这是你想学习的功能”。事实上,马丁。 –
难道你真的不想使用Swing,或者你只是不想默认的外观和感觉一个JButton和其他摇摆控制的? “(通用窗口看起来很像对象)”是什么意思?
有很多来源,在那里,描述自定义按钮包括在它们上面图片: Creating a custom button in Java
的JButton和其他控件与添加点击监听器相关联的所有事件和方法等,你可能穿上”你想创建你自己的控制。我们没有足够的信息去解决问题,例如“交互式对象”是什么意思?
如果您只是想将图标添加到JButton,请使用the constructor that takes an Icon。
我只是不喜欢JButton的默认外观。我只是想知道如何去改变它。我的游戏按键将是矩形与他们的艺术形象来表示喜欢的事物: 字符按钮 建筑物按钮 地图按钮 卖场按钮 希望这清除了一点东西了你。 – Gareth
如果你正在讨论想要一个带有图像的基本按钮(如Sim City 2000面板),只需使用带有图标的JButton构造函数即可。 –
*“我只是不喜欢JButton的默认外观。”* [This source](http://stackoverflow.com/questions/6743306/how-do-i-create-an-event-handler-for- a-jlabel/6743726#6743726)显示如何更改它,以便只显示图像。该按钮的显示效果与放入其中的图像完全相同。 :) –
您真的应该从Swing或SWT开始,获得您的环境的默认外观和自定义。如果您从AWT开始,那么您需要将工作分解为每个操作系统的应用程序风格。 –