В моем Java-приложении есть форма, которая в основном предназначена для предоставления пользователю списка данных из запроса к БД. Одна идея состояла в том, чтобы использовать таблицу и заполнять каждую строку данными из моего набора результатов. Однако при разработке пользовательского интерфейса я и моя команда решили, что он выглядит не так гладко, как хотелось бы. Поэтому мы подумали, что нам нужно создать собственное представление результатов на панели. мы хотели, чтобы это выглядело примерно так:
Таким образом, вместо строк таблицы она будет выглядеть так: по одному на каждый запрос в наборе результатов.
У меня проблема с кодированием. Я потратил много времени, пытаясь понять, как добавить компонент в JForm. как NetBeans, по-видимому, по умолчанию настроить пользовательский интерфейс в качестве группового макета? поэтому я решил, как добавить 1 панель, используя:
javax.swing.JLabel idLbl;
javax.swing.JLabel jLabel1;
javax.swing.JLabel jLabel3;
javax.swing.JLabel jLabel5;
javax.swing.JLabel jLabel7;
javax.swing.JPanel jPanel1;
javax.swing.JLabel prefContactLbl;
javax.swing.JLabel propertyLabel;
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
idLbl = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
propertyLabel = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
contactLabel = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
prefContactLbl = new javax.swing.JLabel();
jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jLabel1.setFont(new java.awt.Font("Tahoma", 1, 12));
jLabel1.setText("Enquiry Id:");
jLabel1.setName("jLabel"+i);
idLbl.setText("jLabel2");
jLabel3.setFont(new java.awt.Font("Tahoma", 1, 12));
jLabel3.setText("Property:");
propertyLabel.setText("A property Address in some town with a postcode");
jLabel5.setFont(new java.awt.Font("Tahoma", 1, 12));
jLabel5.setText("Contact:");
contactLabel.setText("A Persons Name ( 01010100011)");
jLabel7.setFont(new java.awt.Font("Tahoma", 1, 12));
jLabel7.setText("Prefered Contact:");
prefContactLbl.setText("Email/Phone");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(idLbl)
.addGap(18, 18, 18)
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(propertyLabel))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel7)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(prefContactLbl)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel5)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(contactLabel)))
.addContainerGap(20, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(idLbl)
.addComponent(jLabel3)
.addComponent(propertyLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel7)
.addComponent(prefContactLbl)
.addComponent(jLabel5)
.addComponent(contactLabel))
.addContainerGap())
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(10 , 10, 10)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(100, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(570, Short.MAX_VALUE))
);
Основная проблема, с которой я сталкиваюсь, - это добавление более 1 динамически. Я совершенно не уверен, как это сделать, поскольку все, что я могу найти, это установить макет, а не обновлять его. И я не могу установить, сколько .addcomponent в качестве динамического. Действительно запутался, как идти по этому поводу.
Извините, если трудно разобраться в том, что я пытаюсь донести, легче думать об этом, но выразить это словами - кошмар.