java如何把数据库中的数据呈现_java-如何将数据库中的列值获取到jLabels

在我的数据库表中,有一列包含不同的数据.我想要的是检索该列中的所有数据并将它们放在JLabel上.即在我的数据库中

name

Aaron

Baldwin

Gabriel

Harold

现在我有一个1个空的jLabel,但是当插入新数据时,如何从数据库中检索值并将每个值放在Labels中?插入新数据后,需要创建包含该数据的新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"));

}

}

}

解决方法:

如果使用表格,则以下代码将:

public class Test extends JPanel{

private static final long serialVersionUID = 1L;

List objects = new ArrayList();

JTable billTable = new JTable();

JTableBinding jTableBinding;

private void init(){

objects = getNames();

}

private List getNames() {

// for better to bind, it should return list of details object

List list = new ArrayList();

return list;

}

private void initDataBindings(){

// for table binding

BeanProperty> uiBillBeanProperty = BeanProperty.create("objects");

jTableBinding = SwingBindings.createJTableBinding(UpdateStrategy.READ_WRITE, this, uiBillBeanProperty, billTable);

BeanProperty 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 beanProperty = BeanProperty.create("name");

BeanProperty jTextFieldBeanProperty = BeanProperty.create("text");

AutoBinding 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);

}

}

标签:swing,java

来源: https://codeday.me/bug/20191025/1927927.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值