import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class ButtonGrid{
public static void main(String[] args) {
int count = 26, i;
JFrame frame = new JFrame("Title");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(1100,900);
frame.setVisible(true);
if (count >= 1 && count <= 30) {
int rowcount = count / 10;
frame.setLayout(new GridLayout(rowcount,10));
for (i = 1; i <= count; i++) {
frame.add(new JButton(""+i+""));
}
}
}
}
我该怎么解决呢?
我制作了一个演示如何创建动态按钮jpanel
的小GUI。
以下是初始状态:
下面是输入5个按钮后的状态:
我创建了一个JFrame
和两个JPanels
。输入JPanel
使用BorderLayout
和FlowLayout
的组合来创建布局。按钮JPanel
使用GridLayout
。
下面是完整的可运行代码。
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class ButtonGrid implements Runnable {
public static void main(String[] args) {
SwingUtilities.invokeLater(new ButtonGrid());
}
private JFrame frame;
private JPanel buttonPanel;
private JPanel inputPanel;
private JTextField buttonCountField;
@Override
public void run() {
frame = new JFrame("Button Grid");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.inputPanel = createInputPanel();
frame.add(inputPanel, BorderLayout.BEFORE_FIRST_LINE);
this.buttonPanel = createButtonPanel(30);
frame.add(buttonPanel, BorderLayout.CENTER);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
private JPanel createInputPanel() {
JPanel panel = new JPanel(new BorderLayout());
panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
JPanel inputPanel = new JPanel(new FlowLayout());
inputPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
JLabel label = new JLabel("How many buttons? (1 - 30):");
inputPanel.add(label);
buttonCountField = new JTextField(5);
inputPanel.add(buttonCountField);
panel.add(inputPanel, BorderLayout.BEFORE_FIRST_LINE);
JButton button = new JButton("Submit");
panel.add(button, BorderLayout.AFTER_LAST_LINE);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
int buttonCount = valueOf(buttonCountField.getText().trim());
if (buttonCount >= 1 && buttonCount <= 30) {
createButtons(buttonPanel, buttonCount);
}
}
private int valueOf(String number) {
try {
return Integer.valueOf(number);
} catch (NumberFormatException e) {
return -1;
}
}
});
return panel;
}
private JPanel createButtonPanel(int count) {
JPanel panel = new JPanel(new GridLayout(0, 10, 5, 5));
panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
createButtons(panel, count);
return panel;
}
public void createButtons(JPanel panel, int count) {
panel.removeAll();
for (int index = 0; index < count; index++) {
JButton button = new JButton(Integer.toString(index + 1));
panel.add(button);
}
panel.validate();
panel.repaint();
}
}
我有一个按钮和一个文本框。当我在textbox中放置一个值并单击此按钮时,将创建一个新按钮,该值填充在textbox中,但我希望当我再次单击Button1时,应该还有一个按钮,或者我们可以说如何移动上一个按钮的位置? 请帮我解决这个问题。提前谢了。
我有两项活动。其中一个有碎片<从这个片段中,我可以转到另一个活动,但单击“主页”按钮,它会转到上一个活动,而不是转到上一个活动的片段。 图像
我以编程方式生成了许多按钮(一些按钮用于增加值,而另一些按钮用于减少值),当它们调整的值达到最大值或最小值时,我会禁用这些按钮。(即,当达到最大值时,“增加”按钮被禁用,而当达到最小值时,“减少”按钮被禁用。)除了禁用,我还将按钮状态设置为“按下”,以直观地指示已达到极限值,并且按钮不再工作。 我的按钮onClickListener的'增加'按钮看起来像这样: ClickListeners上相应的
我正在使用WPF构建一个包含多个按钮的windows窗体应用程序。我想通知用户,他应该加载一个pdf,然后他可以按下其他按钮,通过使加载pdf按钮闪烁/振动,如果用户点击其他地方,没有pdf加载。 例如,如果在Microsoft Paint打开时尝试单击编辑颜色框之外的任何地方,则会发生类似的行为。(见附件gif) 有人有主意吗?
我有一些像这样的标记: 我需要在中插入一个锚标记,并应用“按钮ID”作为,但是我不能以父TD的值为目标。我一直没定义。
我目前用JavaFX制作了一个表单。我总是按一个按钮,我调用“addAnswer()”-方法。在其中,我创建了一个RadioButton、一个Label和一个deleteButton,我将它们捆绑在一个HBox中。我把所有的HBox都装在一个vBox中。现在的问题是删除按钮。我想深入研究点击按钮的HBox。 这是我的代码: 我在上面试过这个,但我意识到,所有的delAnswers-Button都有