ue4的按钮怎么执行点击事件

发布网友 发布时间:2022-04-23 08:42

我来回答

2个回答

热心网友 时间:2022-06-18 12:22

添加按钮监听。回见内容写成方法,然后调用即可。大概像下面这样
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;

importjavax.swing.JButton;
publicclassTest{
publicstaticvoidmain(String[]args){
JButtonA=newJButton("A");
JButtonB=newJButton("B");
JButtonC=newJButton("C");
A.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
methodA();
}
});
B.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
methodB();
}
});
C.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
methodA();
methodB();
}
});
}
publicstaticvoidmethodA(){
//执行A方法
}
publicstaticvoidmethodB(){
//执行B方法
}
}

追问:

是这样的,我想做成这样:
一个JFrame页面,该页面有三个按钮A、B、C;当我点击按钮A,执行事件A;当我点击按钮B,执行事件B;当我点击按钮C,执行事件A和事件B两个事件。该页面是与数据库相连的,当我进入的时候,从数据库去取一个数据(该数据有三个值A、B、C)。执行程序的时候,如果从数据库取到的数是A,自动执行按钮A的事件(我并没有点击按钮A);取到什么值,执行的就是相对应的按钮的事件。

回答:

JFrame的代码我就不写给你了,那个代码量太大了。就算我写了这里也贴不下。
我不明白你到底想做什么。既然根据从数据库中取出来的值执行方法,那你这三个按钮的意义又在哪里呢?
不过不管你要写成什么样的,总体过程是没变的。首先你可以先从数据库中取数据,然后根据取出来的数据做个判断,用if-else也行,switch-case也行,生成不同的分支,然后写A和B两个方法,根据分支选择执行A或者B。
这样有什么难的嘛?

追问:

JAVA自动点击 按钮的代码怎么写。 Delphi 中,程序自动点击某个按钮A,我只要陪写上 A.Click;程序就会执行按钮A的事件。请问一下:Java 中也可以这样么?JAVA写成A.Click就报错。我是想先从数据库取值,自动执行界面上的按钮的事件,当我点击按钮的时候,我会修改数据库的值。我就是想让程序打开的时候,得到上次程序执行的事件。

回答:

因为已经将处理事务的过程写成方法了,所以你只需要直接调用哪个方法即可。java里没有自动点击按钮的方法,但是可以自动调用方法。比如你在加载完这个界面后直接调用methodA(),那不就和自动点击A没区别了吗?

追问:

这个methodA()就是A的事件,这个按钮A的事件是:

这个就是那个按钮的事件,我怎么调用这个事件使他自动执行事件的操作。

回答:

抽取成方法啊。比如下面代码:
publicvoidactionPerformed(ActionEvente){
inta=0;
intb=0;
intc=a+b;
}你可以将代码变成这样:
publicvoidactionPerformed(ActionEvente){
methodA();
}

privatevoidmethodA(){
inta=0;
intb=0;
intc=a+b;
}当需要自动调用的时候直接调用methodA()即可。

热心网友 时间:2022-06-18 12:22

不知道你用的slate还是widget
widget是游戏里界面的点击事件,在蓝图里就有onclicked。直接绑定就行。
在slate里的话,那就要在c++里面写了,
FSting InName("variable");
FOnClicked::CreateSP(this, &YourFunc, InName);
SNew(SButton)
.OnClicked(this, &YourFunc, InName);
FReply YourFunc(FString InName)
{
// what you want to do
return FReply::Handled;
}
注意这里的InName这个变量可以没有,函数定义时可以空掉这个变量。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com