如何在swing中获取组件名称?
How to get component name in swing?
我想获取面板上的组件名称,添加这段代码:
package mvc.view;
import mvc.DAO.MusBandDAO;
import mvc.DAO.MusBandDAOImpl;
import mvc.model.MusBand;
import javax.swing.*;
import javax.swing.border.BevelBorder;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Vector;
public class SecondView extends JFrame {
JPanel bot = new JPanel();
public SecondView() {
setTitle("Test");
setSize(900, 600);
setResizable(false);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
bot.setName("bot");
bot.setLayout(new BorderLayout());
JTextArea textArea = new JTextArea();
textArea.setName("groupList");
JTextArea textArea1 = new JTextArea();
textArea.setName("groupList1");
JTextArea textArea2 = new JTextArea();
textArea.setName("groupList2");
JPanel panela=new JPanel();
panela.add(textArea);
panela.add(textArea1);
panela.add(textArea2);
getContentPane().add(panela);
Component[] components = panela.getComponents();
for (int i = 0; i < components.length; i++)
System.out.println(">> " + components[i].getName());
}
}
但是不行,接下来在控制台写:
>>0 groupList2
>>1 空
>>2 空
最后添加的元素的名称是 true,但对于其他只是 null..
什么问题?
谢谢
您仅为 textArea
设置名称。对于所有三个组件,您使用相同的语句:textArea.setName("groupList");
将其更改为:
JTextArea textArea = new JTextArea();
textArea.setName("groupList");
JTextArea textArea1 = new JTextArea();
textArea1.setName("groupList1");
JTextArea textArea2 = new JTextArea();
textArea2.setName("groupList2");
我想获取面板上的组件名称,添加这段代码:
package mvc.view;
import mvc.DAO.MusBandDAO;
import mvc.DAO.MusBandDAOImpl;
import mvc.model.MusBand;
import javax.swing.*;
import javax.swing.border.BevelBorder;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Vector;
public class SecondView extends JFrame {
JPanel bot = new JPanel();
public SecondView() {
setTitle("Test");
setSize(900, 600);
setResizable(false);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
bot.setName("bot");
bot.setLayout(new BorderLayout());
JTextArea textArea = new JTextArea();
textArea.setName("groupList");
JTextArea textArea1 = new JTextArea();
textArea.setName("groupList1");
JTextArea textArea2 = new JTextArea();
textArea.setName("groupList2");
JPanel panela=new JPanel();
panela.add(textArea);
panela.add(textArea1);
panela.add(textArea2);
getContentPane().add(panela);
Component[] components = panela.getComponents();
for (int i = 0; i < components.length; i++)
System.out.println(">> " + components[i].getName());
}
}
但是不行,接下来在控制台写:
>>0 groupList2
>>1 空
>>2 空 最后添加的元素的名称是 true,但对于其他只是 null.. 什么问题? 谢谢
您仅为 textArea
设置名称。对于所有三个组件,您使用相同的语句:textArea.setName("groupList");
将其更改为:
JTextArea textArea = new JTextArea();
textArea.setName("groupList");
JTextArea textArea1 = new JTextArea();
textArea1.setName("groupList1");
JTextArea textArea2 = new JTextArea();
textArea2.setName("groupList2");