所以我希望我的按钮被标记为1-9,但我不想列出每个按钮的所有操作侦听器和操作命令。我怎么做
而且我也不能使用add。ActionListener(这个)那么我可以使用什么
JButton[] button = new JButton[9];
panel.setLayout(new GridLayout(3,3));
for (int i = 0; i < button.length; i++) {
button[i] = new JButton();
panel.add(button[i]);
String bu = Integer.toString(i);
button[i].setActionCommand(bu);
button[i].addActionListener(new ActionListener());
抱歉,我是java秋千的新手,所以它仍然有点混乱
您必须实现actionListener
公共类Butt实现ActionListener{
public JPanel method()
{
JPanel panel = new JPanel();
JButton[] button = new JButton[9];
panel.setLayout(new GridLayout(3, 3));
for (int i = 0; i < button.length; i++)
{
button[i] = new JButton(""+i);
panel.add(button[i]);
String bu = Integer.toString(i);
button[i].setActionCommand(bu);
button[i].addActionListener(this);
}
return panel;
}
@Override
public void actionPerformed(ActionEvent e)
{
}
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.add(new Butt().method());
frame.setVisible(true);
frame.setSize(500, 500);
}
}现在看到没有错误。
后果
只需添加执行的主要操作方法。
示例如下:
public void actionPerformed(ActionEvent e){
// your todo code here
}
确保导入适当的软件包。
我不能使用add。ActionListener(这个)那么我能用什么呢
您创建一个实现ActionListener的类。
或者更好地创建一个实现动作的类。动作与ActionListener相同。好处是动作可以与键绑定一起使用。
以下是一个基本示例:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class CalculatorPanel extends JPanel
{
private JTextField display;
public CalculatorPanel()
{
Action numberAction = new AbstractAction()
{
@Override
public void actionPerformed(ActionEvent e)
{
// display.setCaretPosition( display.getDocument().getLength() );
display.replaceSelection(e.getActionCommand());
}
};
setLayout( new BorderLayout() );
display = new JTextField();
display.setEditable( false );
display.setHorizontalAlignment(JTextField.RIGHT);
add(display, BorderLayout.NORTH);
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout( new GridLayout(0, 5) );
add(buttonPanel, BorderLayout.CENTER);
for (int i = 0; i < 10; i++)
{
String text = String.valueOf(i);
JButton button = new JButton( text );
button.addActionListener( numberAction );
button.setBorder( new LineBorder(Color.BLACK) );
button.setPreferredSize( new Dimension(30, 30) );
buttonPanel.add( button );
InputMap inputMap = button.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
inputMap.put(KeyStroke.getKeyStroke(text), text);
inputMap.put(KeyStroke.getKeyStroke("NUMPAD" + text), text);
button.getActionMap().put(text, numberAction);
}
}
private static void createAndShowUI()
{
JFrame frame = new JFrame("Calculator Panel");
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.add( new CalculatorPanel() );
frame.pack();
frame.setLocationRelativeTo( null );
frame.setVisible(true);
}
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
createAndShowUI();
}
});
}
}
现在,您可以单击按钮或键入数字,值将插入到文本字段中。
问题内容: 是否可以将多个不同的s 存储到一个中?这是结构,我想存储在中。 这是我要设置并放入其中的代码 使用此代码仅使用我在JSON object Override中设置的所有对象的最后一个值。有什么建议可以做到这一点? 问题答案: 我找到了JSON的很好链接:http : //code.google.com/p/json- simple/wiki/EncodingExamples#Exampl
问题内容: 我有一个具有2个子文件夹$ / Repo / project和$ / Repo / thirdparty的仓库。我需要将这两个都放入Jenkins中以进行单个构建。自然地,我尝试仅拉$ / Repo,但这给了我许多其他项目以及错误的民意测验(每次将任何东西检入$ / Repo时都会构建)。我试过使用可以工作的multi- scm插件,但是不保存配置(烦人,但不可用)。我尝试使用常规的t
问题内容: 我已经尝试过(但无法正常工作): 问题答案: 尝试这个: 当您遇到此类问题时,一个好主意是检查浏览器是否存在JavaScript错误。不同的浏览器有不同的显示方式,但是需要一个javascript控制台或类似的东西。另外,检查浏览器查看的页面源。 有时,初学者对字符串中的引号感到困惑:在PHP部分中,您分配给。这将字符串值放入该变量内,但该值中没有引号:它们仅用于解释器,因此他知道:
如何获取多个列表并将它们作为不同的列放在python数据框架中?我尝试了这个解决方案,但遇到了一些麻烦。 尝试1: 有三个列表,将它们压缩在一起,并使用 只生成一列 尝试2: 产生一行乘三列(如上所述)或者如果我转置它是三行和一列 如何通过3列(三个列表)数据帧获得100行(每个独立列表的长度)?
我有一个名为LoginFrame的类,它必须显示一个包含登录表单的JFrame对象: abstrac类SingleFrameApplication自动为我提供JFrame对象,我在该对象上设置了一些属性(维度和标题)。 然后尝试添加两个JLabel对象,分别显示字符串“username:”和“password:** TNX 安德里亚
但是大多数投票解决方案的问题是,它调用的所有项,因此,例如,如果它是一个无休止的RecycerView,当用户到达列表的末尾时,您希望发出网络请求,那么使用该解决方案,会重复调用server,因为它会自动到达的最后一项。 不管怎样,如何设置参数以便我可以将放入中(实际上,我希望将像framelayout或RelationVelayout这样的viewgroup作为nestedscrollview的