这是我的按钮单击事件。我想在每次单击按钮时创建组合框。
私有void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
jButton1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent evt){
List<JComboBox> listOfComboBoxes = new ArrayList<JComboBox>();
for(int i=1;i<4;i++){
int x = 28;
int y = 100;
int a = 145;
int b = 28;
listOfComboBoxes.get(i);
listOfComboBoxes.get(i).addItem("--Select the Teacher--");
listOfComboBoxes.get(i).setLayout(null);
listOfComboBoxes.get(i).setLocation(x,y);
add(listOfComboBoxes.get(i)).setSize(a,b);
x=x+30;
a=a+40;
i++;
}
}
});
您要处理两个问题:一个是添加组合(比如对JPanel),另一个是列出这些组合。让我们将其分成两部分,首先了解添加机制:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.List;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MakeCombos extends JFrame {
private static final int Number_OF_COMBOS = 4;
private JButton jButton1;
List<JComboBox> listOfComboBoxes;
private JPanel panel;
int counter = 0;
MakeCombos(){
super("Test frame");
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setPreferredSize(new Dimension(400,300));
setLocationRelativeTo(null);
getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
//create a panel
panel = new JPanel();
getContentPane().add(panel);
//add button to it
jButton1 = new JButton("Click Me");
//add action listener to the panel
jButton1.addActionListener((ActionEvent e)-> {
jButton1ActionPerformed();
});
panel.add(jButton1, BorderLayout.CENTER);
validate();
pack();
setVisible(true);
listOfComboBoxes = makeCombos();
}
/**
*@return
*/
private List<JComboBox> makeCombos() {
List combos = new ArrayList<JComboBox>();
for(int i = 0; i < Number_OF_COMBOS; i++) {
JComboBox<String> combo = new JComboBox<>(new String[] {});
combos.add(combo);
}
return combos;
}
private void jButton1ActionPerformed() {
if(counter >= listOfComboBoxes.size()) {
return;
}
listOfComboBoxes.get(counter);
listOfComboBoxes.get(counter).addItem("--Select the Teacher--");
getContentPane().add(listOfComboBoxes.get(counter)) ;//.setSize(a,b);
counter++;
pack();
}
public static void main(String[] args) {
new MakeCombos();
}
}
运行它,如果不清楚,请毫不犹豫地询问
现在让我们更进一步,并进行布局。请参阅评论:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MakeCombos extends JFrame {
private static final int Number_OF_COMBOS = 4;
private List<JComboBox<String>> listOfComboBoxes;
private JPanel combosPanel;
private int xPosition = 28;
private int yPosition = 100;
private int width = 145;
private int height = 28;
private int counter = 0;
MakeCombos(){
//make width frame for testing
super("Test frame");
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setPreferredSize(new Dimension(500,400));
setLocationRelativeTo(null);
//set layout manager to the frame
getContentPane().setLayout(new BorderLayout());
//add panel + button to the frame
JPanel buttonPanel = new JPanel();
getContentPane().add(buttonPanel, BorderLayout.NORTH); //add the panel to the frame
//add button to the button panel
JButton jButton1 = new JButton("Click Me");
//add action listener to the button
jButton1.addActionListener((ActionEvent e)-> {
jButton1ActionPerformed();
});
buttonPanel.add(jButton1, BorderLayout.CENTER);
//--add width panel for the combos
combosPanel = new JPanel();
//set layout manager to null so you can layout each combo
//consider using a layout manager instead
combosPanel.setLayout(null);
getContentPane().add(combosPanel, BorderLayout.CENTER); //add the panel to the frame
validate();
pack();
setVisible(true);
//make the combos and add them to width list
listOfComboBoxes = makeCombos();
}
/**
*
*/
private List<JComboBox<String>> makeCombos() {
List<JComboBox<String>> combos = new ArrayList<JComboBox<String>> ();
for(int i = 0; i < Number_OF_COMBOS; i++) {
JComboBox<String> combo = new JComboBox<>(new String[] {});
combos.add(combo);
}
return combos;
}
private void jButton1ActionPerformed() {
if(counter >= listOfComboBoxes.size()) {
return;
}
//////////////////////////////////////////////////////////////////////////////
//////////////// note : all this block could be moved to MakeCombos() ////////
// (adding content and setting bounds could have been done when creating ////
//the combo
//add content to the combo
listOfComboBoxes.get(counter).addItem("--Select the Teacher--");
//set layout bounds to each combo
listOfComboBoxes.get(counter).setBounds(xPosition, yPosition, width, height);
//increment position
xPosition=xPosition+30;
yPosition=yPosition+40;
////////////////////////////////////////////////////////////////////////////
/////////////////////// end of move-to-makeCombos() block //////////////////
////////////////////////////////////////////////////////////////////////////
//add the combo to the combos panel
combosPanel.add(listOfComboBoxes.get(counter)) ;
//increment position and counter
counter++;
repaint();
pack();
}
public static void main(String[] args) {
new MakeCombos();
}
}
问题内容: 我是Swing的新手。 我要在单击按钮(完成按钮)后更新表格。我认为数据正确,但屏幕无法正常工作。 以下是我程序的说明 选中复选框,然后单击完成按钮 最底层应更改。 没有主 这是我的代码: 问题答案: 而不是这样做… 只需更新现有模型 或简单地 假设您要继续向表中添加新行。如果您要这样做,还可以先清除表,然后再向其中添加新行。 Swing的工作原理是MVC(模型-视图- 控制器 ),该
我需要帮助创建一个div,当你点击一个按钮时,里面有自定义超文本标记语言的div会被创建。 如果这是可能的(很可能是),我正在制作一个邮箱。 谢谢!!!
我有一个图像视图和一个按钮,我想要什么,当我点击按钮我想旋转图像视图10度。请帮帮我。 下面是我使用的代码
我找到了其他相关的问题,但没有一个答案实际上解决了我的问题。这个按钮在IE上很好用,但在Chrome上不行。我尝试移除span元素,将按钮放在任何其他标记之外,但仍然触发了两次。这个temple扩展了一个'base.html'文件,代码位于'main'元素中。 HTML: jQuery:
我有一个简单的javafxgui,上面有一个HBox,它包含几个组合框,最终将充当过滤器。我不知道如何在单击“清除”按钮时将组合框的值重置为空字符串。任何提示都将不胜感激。 更新:这是我的代码,为我工作
我正在尝试网络抓取,我需要模拟对buttoN的点击,我已经尝试过了: 并返回此错误: selenium . common . exceptions . nosuchelementexception:消息:没有这样的元素:找不到元素:{"method":"xpath "," selector ":"//*[@ id = " CTL 00 _ CP h1 _ BtnTipoGobierno "]" }