Java 如果我想打印';i';当我点击';比如[i]';按钮就像我点击';按钮2';那么它应该给我价值';2'; 如何在“执行的操作”部分中获取值id“I”。对于我单击的每个按钮,它将“i”的值设为0 如果我想在单击“喜欢[I]”按钮时打印“I”的值,该怎么办。比如当我点击“按钮2”时,它会给我值“2”
此代码:Java 如果我想打印';i';当我点击';比如[i]';按钮就像我点击';按钮2';那么它应该给我价值';2'; 如何在“执行的操作”部分中获取值id“I”。对于我单击的每个按钮,它将“i”的值设为0 如果我想在单击“喜欢[I]”按钮时打印“I”的值,该怎么办。比如当我点击“按钮2”时,它会给我值“2”,java,swing,arraylist,jbutton,Java,Swing,Arraylist,Jbutton,此代码: import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class button_array extends JFrame{ int i; JLabel[] ulb = new JLabel[4]; JButton[] like = new JButton[4]; JPanel panel = new JP
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class button_array extends JFrame{
int i;
JLabel[] ulb = new JLabel[4];
JButton[] like = new JButton[4];
JPanel panel = new JPanel();
public button_array() {
new JFrame();
i =3;
while(i>0) {
ulb[i] = new JLabel("user "+i);
like[i] = new JButton("Button "+i);
panel.add(ulb[i]);
panel.add(like[i]);
panel.add(Box.createVerticalStrut(25));
like[i].addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println(i);
}
});
i--;
}
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
add(panel);
setSize(400,400);
setVisible(true);
}
public static void main(String[] args) {
new button_array();
}
}
由于循环中的i--
,因此当您单击时,它将获取此时的i
值,该值等于0,因此不起作用
因此,如果您想在like[]
中打印JButton
的索引
,您可以在overrideactionPerformed
中这样做:
System.out.println(i);
请不要链接不相关的截图。这句话没有添加任何无法用几句话解释的内容。
@Override
public void actionPerformed(ActionEvent e) {
JButton o = (JButton)e.getSource();
for (int j = 0; j < like.length; j++)
{
if (like[j]!= null && (JButton)like[j] == o)
{
System.out.println(j);
}
}
}
@Override
public void actionPerformed(ActionEvent e) {
JButton o = (JButton)e.getSource();
String str1 = o.getText();
String str2 = str1.substring(6, str1.length());
System.out.println(j);
}