我正在构建一个清单Gui应用程序,我希望用描述的第一个字母来搜索项目。所以,我需要在JPanel上显示26个小按钮(将是字母表中的字母)。然后使用搜索按钮来对应保存的文件。但是我似乎不能让按钮显示???它只是JPanel。我这里只有整个程序的片段。只是突出显示其中的JPanel和JButton。
JPanel searchPanel = new JPanel( );
searchPanel.setPreferredSize(new Dimension(240, 160));
searchPanel.setBorder(BorderFactory.createTitledBorder("Item Search"));
searchPanel.setBounds(149, 295, 205, 94);
gridConstraints = new GridBagConstraints();
gridConstraints.gridx = 1;
gridConstraints.gridy = 7;
gridConstraints.gridwidth = 3;
gridConstraints.insets = new Insets(10, 0, 10, 0);
gridConstraints.anchor = GridBagConstraints.CENTER;
getContentPane().add(searchPanel, gridConstraints);
layeredPane.setLayer(searchPanel, 2);
layeredPane.add(searchPanel, gridConstraints);
int x = 0, y = 0;
// Create Button and Position of Search Panel
for (int i = 0; i < 26; i++)
{
JButton[ ] searchBtn = new JButton[26];
searchBtn[i] = new JButton( );
searchBtn[i].setText(String.valueOf((char) (65 + i)));
searchBtn[i].setFont(new Font("Arial", Font.BOLD, 12));
searchBtn[i].setMargin(new Insets(-10, -10, -10, -10));
searchBtn[i].setBounds(149, 295, i, i);
sizeButton(searchBtn[i], new Dimension(37, 27));
searchBtn[i].setBackground(Color.YELLOW);
searchBtn[i].setFocusable(false);
gridConstraints = new GridBagConstraints();
gridConstraints.gridx = x;
gridConstraints.gridy = y;
searchPanel.add(searchBtn[i], gridConstraints);
//Search Buttons Method
searchBtn[i].addActionListener(new ActionListener( ) {
public void actionPerformed(ActionEvent e)
{
searchBtnActionPerformed(e);
}
});
x++;
//6 Buttons Per Row
if (x % 6 == 0)
{
x = 0;
y++;
}
}
getContentPane( ).setLayout(getLayout( ));
}
所以,我拿了你的代码,纠正了你试图同时添加两个不同容器的事实,它产生了。。。
现在,我很确定这不是你想要的,基于我对你的代码的有限理解(这是代码处于如此状态以至于不值得尝试挽救的时刻之一),但是,你似乎显然不明白如何使用布局管理器。
您应该花时间查看容器内组件的布局
所以,我扔掉了你的代码,只是做了。。。
public class SearchPane extends JPanel {
public SearchPane() {
setBorder(BorderFactory.createTitledBorder("Item Search"));
setLayout(new GridLayout(-1, 6));
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
JOptionPane.showMessageDialog(SearchPane.this, "You want to search for [" + cmd + "]", "Search", JOptionPane.PLAIN_MESSAGE);
}
};
for (int index = 0; index < 26; index++) {
JButton btn = new JButton(Character.toString('A' + index));
btn.addActionListener(listener);
add(btn);
}
}
}
我试图将24个添加到我的的,但当我运行它时,我发现没有添加任何按钮。(至少,它们不可见!)。我试着给一个背景色,它是可见的。有人知道我做错了什么吗? 这是我的代码(还有一个类): 其他(主要)类别:
我想将结果发送到。我正在使用AJAX传递我的值。我不确定为什么我数据现在显示在一个按钮中。有谁能帮我解决这个问题吗?如果你们能给我提供如何解决我的问题的代码,那就更好了。提前道谢。 这是我的AJAX代码 编辑问题:我想根据用户当月的输入创建一个excel文件。因此,在用户选择了月份之后,当他们单击按钮时,excel文件将自动下载。我现在的问题是,我现在知道如何将month值传递到页面,在该页面中我
我想在地图上显示许多不同的标签,所以我在面板中使用null布局,并为每个标签调用setLocation。但是,由于某些原因,标签没有显示出来。如果我把锅拿开。setLayout(null),则标签显示在面板的顶部中心。为什么null布局不能与setPosition一起工作?
我现在使用Selenium&Ruby自动截图,但是,我无法从开发人员工具中找到元素名。如何在谷歌上点击“搜索”? 下面的代码有一个错误,它是 没有这样的元素:找不到元素:{“method”:“CSS Selector”,“Selector”:“*[name='btn g']”}(Selenium::WebDriver::Error::NosuChelementError)(会话信息:Chrome=
这也是基于我的最后一个问题。 按照本教程,我将项目克隆到我的机器中,并试图让项目正确构建。 在修复我在上一个问题中得到的错误的过程中,我遇到了一个新的错误。 这是我正在尝试修复/编辑的构建脚本的部分 按照如何检查Gradle版本的说明,我检查了我的版本,发现我正在运行Gradle版本2.2.1。基于此,我改变了 到 然而,在更改构建脚本代码并尝试重建我的项目后,我得到了上面提到的错误(下面是完整的