JButton btn; for (int i=0;i<lbl.length;i++) { btn=new JButton(lbl[i]); jpl.add(btn,i); }
时间: 2023-12-30 09:06:23 浏览: 23
这是一个在 Java Swing 中创建多个按钮的语句。该语句使用了一个 for 循环来遍历 lbl 数组中的所有元素,创建对应数量的按钮,并将这些按钮添加到一个 JPanel 中。
在循环中,首先创建了一个 JButton 对象 btn,并将 lbl 数组中的当前元素作为按钮的标签文本。然后将该按钮添加到 JPanel 对象 jpl 中,并指定该按钮在 JPanel 中的位置为 i。最后,循环结束后,jpl 中会包含多个按钮,这些按钮的标签文本分别为 lbl 数组中的元素。
相关问题
import java.awt.event.*; import java.awt.*; import javax.swing.*; import javax.swing.table.DefaultTableModel; public class MyTableWin extends JFrame implements ActionListener { Object rows[][] = { { "001", "zhang", "03/04/2002", "Computer" }, { "002", "Li", "05/10/2002", "Chinese" }, { "003", "Wang", "09/10/2002", "English" } }; String cols[] = { "number", "name", "birthday", "department" }; JTable table; JLabel lbl_show; JTextField txt_show; JButton btn_update; JPanel pSouth, pNorth; JScrollPane jp; public MyTableWin() { table = new JTable(rows, cols); // 表格里点谁就显示谁 table.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { int row = table.getSelectedRow(); int column = table.getSelectedColumn(); Object selectedvalue = table.getModel().getValueAt(row, column); txt_show.setText((String) selectedvalue); btn_update.setEnabled(true); } }); lbl_show = new JLabel("Info."); txt_show = new JTextField(15); btn_update = new JButton("Update"); btn_update.setEnabled(false); btn_update.addActionListener(this); pSouth = new JPanel(); pNorth = new JPanel(); jp = new JScrollPane(table); pNorth.add(jp); pSouth.add(lbl_show); pSouth.add(txt_show); pSouth.add(btn_update); add(pNorth, BorderLayout.CENTER); add(pSouth, BorderLayout.SOUTH); setVisible(true); setSize(800, 500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e) { int row = table.getSelectedRow(); int column = table.getSelectedColumn(); rows[row][column] = txt_show.getText(); int option = JOptionPane.showConfirmDialog(this, "do you confirm to update the table content?", "warning", JOptionPane.OK_CANCEL_OPTION); if (option == JOptionPane.OK_OPTION) { table.setModel(new DefaultTableModel(rows, cols)); } btn_update.setEnabled(false); } public static void main(String[] args) { MyTableWin win = new MyTableWin(); } }修改该程序,使得点击表格时,在控件台显示所在行一行的数据。
可以在鼠标点击事件中获取所在行的数据,然后显示在控件台上。修改代码如下:
```
table.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int row = table.getSelectedRow();
Object[] rowData = new Object[cols.length];
for (int i = 0; i < cols.length; i++) {
rowData[i] = table.getModel().getValueAt(row, i);
}
String rowInfo = "Row " + (row + 1) + ": " + Arrays.toString(rowData);
txt_show.setText(rowInfo);
btn_update.setEnabled(true);
}
});
```
这样修改后,点击表格时就可以在控件台中显示所在行一行的数据了。
package text6; import java.sql.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class domo extends JFrame implements ActionListener{ JPanel jp1=new JPanel(); JPanel jp2=new JPanel(); JLabel lbl_no=new JLabel("学号"); JLabel lbl_name=new JLabel("姓名"); JLabel lbl_birth=new JLabel("生日"); JLabel lbl_sex=new JLabel("性别"); JLabel lbl_study=new JLabel("学情"); JLabel lbl_live=new JLabel("宿舍"); JTextField txt_no=new JTextField(20); JTextField txt_name=new JTextField(20); JTextField txt_birth=new JTextField(20); JTextField txt_sex=new JTextField(20); JTextField txt_study=new JTextField(20); JTextField txt_live=new JTextField(20); JButton btn_add=new JButton("新增"); JButton btn_delete=new JButton("删除"); JButton btn_update=new JButton("更新"); public domo(){ jp1.add(lbl_no); jp1.add(txt_no); jp1.add(lbl_name); jp1.add(txt_name); jp1.add(lbl_birth); jp1.add(txt_birth); jp1.add(lbl_sex); jp1.add(txt_sex); jp1.add(lbl_study); jp1.add(txt_birth); jp1.add(lbl_live); jp1.add(txt_live); add(jp1,BorderLayout.CENTER); jp2.add(btn_add); jp2.add(btn_delete); jp2.add(btn_update); add(jp2,BorderLayout.SOUTH); setBounds(250,250,250,250); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { // TODO 自动生成的方法存根 } public static void main(String args[]) { JFrame.setDefaultLookAndFeelDecorated(true); new domo(); } }改错
在代码中,lbl_study 和 txt_study 的添加顺序有误,应该是先添加标签 lbl_study,再添加文本框 txt_study。在代码中,txt_study 的添加应该替换为 txt_live。因此,正确的代码如下:
```
package text6;
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class domo extends JFrame implements ActionListener{
JPanel jp1=new JPanel();
JPanel jp2=new JPanel();
JLabel lbl_no=new JLabel("学号");
JLabel lbl_name=new JLabel("姓名");
JLabel lbl_birth=new JLabel("生日");
JLabel lbl_sex=new JLabel("性别");
JLabel lbl_study=new JLabel("学情");
JLabel lbl_live=new JLabel("宿舍");
JTextField txt_no=new JTextField(20);
JTextField txt_name=new JTextField(20);
JTextField txt_birth=new JTextField(20);
JTextField txt_sex=new JTextField(20);
JTextField txt_live=new JTextField(20);
JTextField txt_study=new JTextField(20);
JButton btn_add=new JButton("新增");
JButton btn_delete=new JButton("删除");
JButton btn_update=new JButton("更新");
public domo(){
jp1.add(lbl_no);
jp1.add(txt_no);
jp1.add(lbl_name);
jp1.add(txt_name);
jp1.add(lbl_birth);
jp1.add(txt_birth);
jp1.add(lbl_sex);
jp1.add(txt_sex);
jp1.add(lbl_study);
jp1.add(txt_study);
jp1.add(lbl_live);
jp1.add(txt_live);
add(jp1,BorderLayout.CENTER);
jp2.add(btn_add);
jp2.add(btn_delete);
jp2.add(btn_update);
add(jp2,BorderLayout.SOUTH);
setBounds(250,250,250,250);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
}
public static void main(String args[]) {
JFrame.setDefaultLookAndFeelDecorated(true);
new domo();
}
}
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)