Da die Daten dynamisch sind, sollte die GUI auch dynamisch sein.
Betrachten Sie das folgende Beispiel:
import javax.swing.JLabel;
import javax.swing.JRadioButton;
public class GuiRow {
/** jRadioButton */
private JRadioButton jRadioButton;
/** studentIdLabel */
private JLabel studentIdLabel;
/** nameLabel */
private JLabel nameLabel;
/** courseLabel */
private JLabel courseLabel;
/**
* Constructs a new instance.
*
* @param studentIdtext
* @param nameText
* @param courseText
*/
public GuiRow(String studentIdtext, String nameText, String courseText) {
this.setjRadioButton(new JRadioButton(""));
// TODO configure radio button
this.setStudentIdLabel(new JLabel(studentIdtext));
this.setNameLabel(new JLabel(nameText));
this.setCourseLabel(new JLabel(nameText));
}
/**
* Get jRadioButton.
*
* @return jRadioButton
*/
public JRadioButton getjRadioButton() {
return this.jRadioButton;
}
/**
* Set jRadioButton.
*
* @param jRadioButton
*/
public void setjRadioButton(JRadioButton jRadioButton) {
this.jRadioButton = jRadioButton;
}
/**
* Get studentIdLabel.
*
* @return studentIdLabel
*/
public JLabel getStudentIdLabel() {
return this.studentIdLabel;
}
/**
* Set studentIdLabel.
*
* @param studentIdLabel
*/
public void setStudentIdLabel(JLabel studentIdLabel) {
this.studentIdLabel = studentIdLabel;
}
/**
* Get nameLabel.
*
* @return nameLabel
*/
public JLabel getNameLabel() {
return this.nameLabel;
}
/**
* Set nameLabel.
*
* @param nameLabel
*/
public void setNameLabel(JLabel nameLabel) {
this.nameLabel = nameLabel;
}
/**
* Get courseLabel.
*
* @return courseLabel
*/
public JLabel getCourseLabel() {
return this.courseLabel;
}
/**
* Set courseLabel.
*
* @param courseLabel
*/
public void setCourseLabel(JLabel courseLabel) {
this.courseLabel = courseLabel;
}
}
Dies ist ein einfaches Objekt zu erstellen und eine Zeile in Ihrem Container zu organisieren (wahrscheinlich JPanel, nicht wahr?)
Wenn Sie Parsen der resultset Sie müssen Erstellen Sie eine Liste solcher Objekte und fügen Sie die Daten dort hinzu.
Hier ist ein einfaches Beispiel dafür, wie die Daten zu analysieren und anzuzeigen, die Sie in zwei oder mehr Methoden aufteilen und sie in den entsprechenden Einheiten platzieren:
int resultsetSize = resultset.getFetchSize();
//init the list
List<GuiRow> guiRowList = new ArrayList<GuiRow>(resultsetSize);
while (resultset.next()) {
//get the column values
String id = resultset.getString("studentId");
String name = resultset.getString("studentName");
String course = resultset.getString("course");
//create the the entry
GuiRow guiRow = new GuiRow(id, name, course);
//add it to the list
guiRowList.add(guiRow);
}
//now that you have a nice list of rows add them one by one to the container
JPanel container = new JPanel(new GridLayout(resultsetSize, 4));
//further container configuration could be done here ...
for (GuiRow row : guiRowList) {
container.add(row.getjRadioButton());
container.add(row.getStudentIdLabel());
container.add(row.getNameLabel());
container.add(row.getCourseLabel());
}
Es ist nur so, wie Sie in Ihrer Frage Titel sagte . Angenommen, der Verweis auf Ihren 'JRadioButton' ist' btn', rufen Sie einfach 'btn.setText (s1)' auf. 'JLabel' hat eine öffentliche' setText' Methode und 'JRadioButton' erbt sie von' AbstractButton'. – ccjmne
Vielen Dank für Ihren Vorschlag, aber da im Fall, dass mehr als 1 Datensätze abgerufen werden, möchte ich es in separaten JRadioButton und JLabel anzeigen, so dass jedes Mal Variablenname unterschiedlich sein wird. Zum Beispiel Wenn 2 Datensätze abgerufen werden, sollten Daten in BT1 und angezeigt werden BT2 und so weiter Bitte beachten Sie den beigefügten Screenshot für weitere Details –