① 顶部两个文本框只接受大于0小于11的整数。
② 文本框数字改变时,自动刷新下部网格区域的按钮。
③ 鼠标进入按钮时,在该按钮上显示“*”。
④ 鼠标移出按钮时,隐藏该按钮上的文字。
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
class GUIProgram extends JFrame implements MouseListener {
// 顶部的文本框
private JTextField rowsField;
private JTextField colsField;
// 网格区域的按钮
private JButton[][] buttons;
public GUIProgram() {
// 创建顶部的文本框
rowsField = new JTextField();
colsField = new JTextField();
// 将文本框添加到窗口中
add(rowsField);
add(colsField);
JPanel topPan = new JPanel(); // 顶部标签面板
JPanel buttonPan = new JPanel(); // 按钮面板
add(topPan, BorderLayout.NORTH);//将画板添加到窗口上,使用边界布局向北
add(buttonPan, BorderLayout.CENTER);//将画板添加到窗口上,使用边界布局居中
// 设置网格布局
setLayout(new GridLayout(0, 2));
JLabel A=new JLabel();
JLabel B=new JLabel();
// 设置窗口的大小
setSize(400, 300);
// 设置窗口的关闭操作
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 显示窗口
setVisible(true);
}
// 刷新按钮的方法
public void refreshButtons() {
// 获取文本框中的数字
int rows = Integer.parseInt(rowsField.getText());
int cols = Integer.parseInt(colsField.getText());
// 如果文本框中的数字不合法,则返回
if (rows < 1|| rows > 10 || cols < 1 || cols > 10) {
return;
}
// 删除所有组件
removeAll();
// 重新创建按钮
buttons = new JButton[rows][cols];
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
JButton button = new JButton();
button.addMouseListener(this);
buttons[i][j] = button;
add(button);
}
}
// 重新布局
validate();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new GUIProgram();
}
});
}
@Override
public void mouseClicked(MouseEvent e) {
// 当鼠标在按钮上点击时不执行任何操作
}
@Override
public void mousePressed(MouseEvent e) {
// 当鼠标在按钮上按下时不执行任何操作
}
@Override
public void mouseReleased(MouseEvent e) {
// 当鼠标在按钮上释放时不执行任何操作
}
@Override
public void mouseEntered(MouseEvent e) {
// 当鼠标进入按钮时,在按钮上显示 "*"
JButton button = (JButton) e.getSource();
button.setText("*");
}
@Override
public void mouseExited(MouseEvent e) {
// 当鼠标离开按钮时,隐藏按钮上的文字
JButton button = (JButton) e.getSource();
button.setText("");
}
}
为了使代码符合要求,你可以考虑以下修改:
① 顶部两个文本框只接受大于0小于11的整数
② 文本框数字改变时,自动刷新下部网格区域的按钮
③ 鼠标进入按钮时,在该按钮上显示“*”
④ 鼠标移出按钮时,隐藏该按钮上的文字
以上是一些建议,你可以参考这些建议来修改代码,使其符合要求。