如何将数据库中的列值获取到jLabel
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将数据库中的列值获取到jLabel相关的知识,希望对你有一定的参考价值。
在我的数据库表中,有一个包含不同数据的列。我想要的是检索该列中的所有数据并将它们放在JLabel上。即在我的数据库中。
name
Aaron
Baldwin
Gabriel
Harold
现在我有一个空的jLabel但是如何从数据库中检索值并在插入新数据时将每个值放在标签中?插入新数据时,需要创建包含数据的新jLabel。
我尝试了什么。
private void getNames() {
String sql = "SELECT * FROM details";
try
{
con = Db.getConnection();
pst = con.prepareStatement(sql);
rs = pst.executeQuery();
while(rs.next())
{
jLabel1.setText(rs.getString("name"));
}
}
}
答案
如果您使用Table,下面的代码将:
public class Test extends JPanel{
private static final long serialVersionUID = 1L;
List<Object> objects = new ArrayList<Object>();
JTable billTable = new JTable();
JTableBinding<UiBillItem, UiBill, JTable> jTableBinding;
private void init(){
objects = getNames();
}
private List<Object> getNames() {
// for better to bind, it should return list of details object
List<Object> list = new ArrayList<Object>();
return list;
}
private void initDataBindings(){
// for table binding
BeanProperty<Test, List<Object>> uiBillBeanProperty = BeanProperty.create("objects");
jTableBinding = SwingBindings.createJTableBinding(UpdateStrategy.READ_WRITE, this, uiBillBeanProperty, billTable);
BeanProperty<Test, Float> uiBillItemBeanProperty_3 = BeanProperty.create("quantity"); // property need to show
jTableBinding.addColumnBinding(uiBillItemBeanProperty_3).setColumnName("Qty");
// can create multiple property like this
}
}
优点:
- 列表大小自动计算。没有必要更新,但当你去正常的jlabel你必须创建jlabel想要显示但不知道大小的数量。
- 您可以绑定类中的属性(变量)。
请注意,您可以根据您可以使用您想要的条件使用GlazedLists进行绑定。
下面是Jlabel绑定的代码,
public class Test extends JPanel{
private JLabel lblName;
Details details;
public Test(){
lblName = new JLabel();
add(lblName);
init();
initBinding();
}
private void init() {
String sql = "SELECT * FROM details limit 1";
try
{
con = Db.getConnection();
pst = con.prepareStatement(sql);
rs = pst.executeQuery();
details = (Details) rs;
}catch(Exception e){
e.printStackTrace();
}
}
private void initBinding(){
BeanProperty<Details, Srting> beanProperty = BeanProperty.create("name");
BeanProperty<JLabel, String> jTextFieldBeanProperty = BeanProperty.create("text");
AutoBinding<Details, String, JLabel, String> autoBinding_20 = Bindings.createAutoBinding(UpdateStrategy.READ_WRITE, details, beanProperty, lblName, jTextFieldBeanProperty);
autoBinding_20.bind();
// can bind variables
}
}
class Details(){
private Stirng name;
private final PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(
this);
public void addPropertyChangeListener(PropertyChangeListener listener) {
propertyChangeSupport.addPropertyChangeListener(listener);
}
public void addPropertyChangeListener(String propertyName,
PropertyChangeListener listener) {
propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
propertyChangeSupport.removePropertyChangeListener(listener);
}
public void removePropertyChangeListener(String propertyName,
PropertyChangeListener listener) {
propertyChangeSupport.removePropertyChangeListener(propertyName,
listener);
}
protected void firePropertyChange(String propertyName, Object oldValue,
Object newValue) {
propertyChangeSupport.firePropertyChange(propertyName, oldValue,
newValue);
}
}
以上是关于如何将数据库中的列值获取到jLabel的主要内容,如果未能解决你的问题,请参考以下文章