我正在寻找一种方法将变量或字符串或任何东西传递给JButton的匿名actionlistener(或显式actionlistener).这是我有的:
public class Tool {
...
public static void addDialog() {
JButton addButton = new JButton( "Add" );
JTextField entry = new JTextField( "Entry Text", 20 );
...
addButton.addActionListener( new ActionListener( ) {
public void actionPerformed( ActionEvent e )
{
System.out.println( entry.getText() );
}
});
...
}
}
Run Code Online (Sandbox Code Playgroud)
现在我只是声明entry是一个全局变量,但我讨厌这样做的方式.还有更好的选择吗?
我确定我遗漏了一些简单的东西,但是我正在使用一个执行脚本来调用一些实用程序脚本,我想通过一个管道处理来自实用程序的所有输出.我的问题是实用程序使用stderr报告错误情况,但我无法捕获它以在父脚本中使用.
父脚本:
#!/bin/bash
child 2>&1 >/dev/null
Run Code Online (Sandbox Code Playgroud)
儿童剧本
#!/bin/bash
echo "Print"
echo "Error" 1>&2
Run Code Online (Sandbox Code Playgroud)
我想到的是,stderr中child(以及所有它的命令)将被重定向到stdout(因此没有输出),但是当我执行parent我得到Error回显到终端("打印"发送到/ dev/null的).
我是GUI设计的新手,我试图在我走错路之前做好计划,任何帮助都会很好.我正在尝试显示JTable一行Employee,其本身的数据类型为String和ArrayList<Cert>.Cert包含一个String.
我想让表格显示用于编辑的数据,但是对于一些列我想要实现从一组有效字符串中JComboBox选择a String,以及不同地为每个选项着色(不同的背景颜色)在JComboBox)).
此外,ArrayList<Cert>当前在单元格中显示为[xxx,xxx,...],其中XXX是toString()函数中每个项目的返回值ArrayList.我想我想把它显示ArrayList<Cert>为只读JComboBox,但我并不关心这个项目.
我在质疑我需要创建多少个类才能实现这一目标.我已经有了JTable扩展的自定义模型AbstractTableModel.我是否需要编写扩展名JComboBox或者我是否需要JComboBox为一个单元格扩展适当的渲染器并在那里进行魔术,然后将该自定义渲染器分配给单元格的单元格渲染器String?
到目前为止,这是我所拥有的,轻描淡写的:
public class EmployeeTableModel extends AbstractTableModel {
...
private ArrayList<Employee> myDataObjects = new ArrayList<Employee>();
...
@Override
public Object getValueAt(int row, int column) {
Employee emp = myDataObjects.get(row);
switch (column) {
case 0:
return emp.getName();
case 1:
return emp.getShift(); …Run Code Online (Sandbox Code Playgroud)