Salve a tutti,
ne approfitto per salutare la comunity dato che sono nuovo, sia di questo forum che di Java.
Pongo subito la mia domanda:
realizzo una gui con la collocazione a runtime di un certo numero di jCheckBox definite da un'interrogazione ad un database, alcune di queste ultime dovrebbero implementare delle "actionPerfomed", ma non so se la cosa sia fattibile e se si, come.
Eternamente grato a chi mi risponderà
Di seguito il codice in questione:
Premetto che le classi di supporto: MyScrollPane e MyPanel non sono altro che delle estensioni delle classiche componenti in cui definisco solo le "preferenze"
codice:
package Scroller;
import java.awt.BorderLayout;
import java.awt.Font;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JSeparator;
public class Scroller extends JFrame{
private Scroller scrollpane;
static Connection conn;
public Scroller(){
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setBackground(new java.awt.Color(0, 240, 0));
setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
setLocation(600, 10);
setMinimumSize(new java.awt.Dimension(300, 700));
setPreferredSize(new java.awt.Dimension(320, 700));
this.setVisible(true);
}
public static void main(String[] args) throws SQLException, ClassNotFoundException{
Scroller scrollpane = new Scroller();
MyPanel p = new MyPanel();
MyScrollPane sp = new MyScrollPane(p);
ResultSet rs=null;
Statement st=null;
/*
*
* Database interrogation and connection
*
*/
String query="select name from base;";
String query2="select name from extra;";
Class.forName("org.sqlite.JDBC");
conn=DriverManager.getConnection("jdbc:sqlite:optionals.sqlite");
st = conn.createStatement();
rs = st.executeQuery(query);
/*-- END DB SECTION --*/
/*-- COMPONENT POSITIONING --*/
//BASE COMPONENT
//BASE CONFIGURATION LABEL
JLabel base=new JLabel("Base Configuration:", JLabel.LEFT);
base.setFont(new Font("Tahoma",Font.BOLD,12));
base.setForeground(new java.awt.Color(38, 172, 210));
p.add(base);
//jCHECKBOX LIST
while(rs.next())
{
String var1 = rs.getString("name");
p.add(new JCheckBox(var1));
}
JSeparator jsep=new JSeparator();
//END BASE COMPONENT
//SEPARATOR
p.add(jsep);
//EXTRA COMPONENT
//EXTRA COMPONENT LABEL
JLabel extra=new JLabel("Extra Optionals:", JLabel.LEFT);
extra.setFont(new Font("Tahoma",Font.BOLD,12));
extra.setForeground(new java.awt.Color(38, 172, 210));
p.add(extra);
//REDEFINITION OF QUERY
rs = st.executeQuery(query2);
//jCHECKBOX LIST
while(rs.next())
{
String var1 = rs.getString("name");
p.add(new JCheckBox(var1));
}
//END BASE COMPONENT
//ADDING SCROLLPANE TO jFRAME
scrollpane.add(sp, BorderLayout.CENTER);
}
}
Domanda strana: Durante l'esecuzione mi si apre la finestra ma le componenti appaiono solo se compio un'azione tipo resize sulla finestra stessa. Da cosa dipende?
Ancora mille grazie a tutti!
Palf