Java Swing:Can';看不到扩展JPanel的类的组件
我创建了这个类jpanelcase,它扩展了JPanel:Java Swing:Can';看不到扩展JPanel的类的组件,java,swing,jpanel,extends,Java,Swing,Jpanel,Extends,我创建了这个类jpanelcase,它扩展了JPanel: public class JPanelCaso extends JPanel implements MouseListener{ JCheckBox checkBox; JTextArea textArea; String frasePerCliente = ""; private int distanzaDaBordi = 0; private int distanzaCheckTextA =
public class JPanelCaso extends JPanel implements MouseListener{
JCheckBox checkBox;
JTextArea textArea;
String frasePerCliente = "";
private int distanzaDaBordi = 0;
private int distanzaCheckTextA = 5;
private SpringLayout layoutPnlCaso = new SpringLayout();
/**
* Costruttore della classe Caso
*
* @param checkBox l' oggetto di tipo JCheckBox relativo al caso
* @param textArea l' oggetto di tipo JtextArea relativo al caso
*/
JPanelCaso(String strTitoloCaso, String frasePerCliente){
this.addMouseListener(this);
checkBox = new JCheckBox();
checkBox.addMouseListener(this);
textArea = new JTextArea(strTitoloCaso);
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
textArea.addMouseListener(this);
textArea.setEditable(false);
this.frasePerCliente = frasePerCliente;
componiPannello();
}
private void componiPannello() {
this.setLayout(layoutPnlCaso);
//Dispongo i controlli
layoutPnlCaso.putConstraint(SpringLayout.WEST, checkBox, distanzaDaBordi, SpringLayout.WEST, this);
layoutPnlCaso.putConstraint(SpringLayout.EAST, checkBox, -distanzaCheckTextA, SpringLayout.WEST, textArea);
layoutPnlCaso.putConstraint(SpringLayout.WEST, textArea, -distanzaDaBordi, SpringLayout.WEST, this);
layoutPnlCaso.putConstraint(SpringLayout.NORTH, checkBox, distanzaDaBordi, SpringLayout.NORTH, this);
layoutPnlCaso.putConstraint(SpringLayout.NORTH, textArea, distanzaDaBordi, SpringLayout.NORTH, this);
layoutPnlCaso.putConstraint(SpringLayout.SOUTH, textArea, distanzaDaBordi, SpringLayout.SOUTH, this);
this.add(checkBox);
this.add(textArea);
}
}
然后,我在一个JPanel中插入各种JPanelCaso,这是另一个JPanel的一张卡片,具有卡片布局:
public class GuidaBpoEse{
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
new GuidaBpoEse();
}
});
}
public GuidaBpoEse() {
creaFinestraMain();
}
Workbook wbDbCommentiEse = null;
Dimension grandezzaSchermo = Toolkit.getDefaultToolkit().getScreenSize();
int larghezzaMain = (int)(grandezzaSchermo.getWidth() * 0.20);
int altezzaMain = (int)(grandezzaSchermo.getHeight() * 0.95);
Point inizioMain = new Point((int)grandezzaSchermo.getWidth() - larghezzaMain, 0);
JFrame frmMain = new JFrame();
int nFogli;
int iFoglio = 0;
int righe; //conta le righe del iFoglio fino all' ultima piena
int colonne; //conta le colonne del iFoglio fino all' ultima piena
int riga;
int colonna;
int distanzaTraCasi = 5;
int distanzaDaBordi = 0;
static JTextArea txtaFrasiTrovate;
private void creaFinestraMain() {
try {
wbDbCommentiEse = Workbook.getWorkbook(new File("db.xls"));
} catch (BiffException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
nFogli = wbDbCommentiEse.getNumberOfSheets();
...
SpringLayout layoutMain = new SpringLayout();
JPanel pnlMain = new JPanel(layoutMain);
...
// Pannello della scelta delle macrocasistiche ==================================================
JPanel pnlMacrocasistiche = new JPanel(new GridLayout(nFogli - 2, 1));
JScrollPane spnlMacrocasistiche = null;
JButton[] btnMacrocasistiche = new JButton[nFogli]; //Salterò il primo elemento per far corrispondere l' indice dei fogli nel file excel con l' indice dei fogli nell' array di tasti
Sheet sAppoggio;
iFoglio++;
while (iFoglio < nFogli - 1) {
iFoglio++;
sAppoggio = wbDbCommentiEse.getSheet(iFoglio);
btnMacrocasistiche[iFoglio] = new JButton(sAppoggio.getName());
pnlMacrocasistiche.add(btnMacrocasistiche[iFoglio]);
btnMacrocasistiche[iFoglio].addMouseListener(new MouseListener() {
@Override
public void mouseEntered(MouseEvent arg0) {
JButton btnAppoggio = (JButton)arg0.getSource();
layoutPnlDettagli.show(pnlDettagli, btnAppoggio.getText());
frmDettagli.setVisible(true);
}
...
});
}
spnlMacrocasistiche = new JScrollPane(pnlMacrocasistiche);
spnlMacrocasistiche.setBorder(BorderFactory.createTitledBorder("Macrocasistiche"));
pnlMain.add(spnlMacrocasistiche);
// ==============================================================================================
//Posiziono spnlMacrocasistiche
spnlMacrocasistiche.setPreferredSize(new Dimension((int)frmMain.getWidth(), (int)(frmMain.getHeight() * 0.4)));;
layoutMain.putConstraint(SpringLayout.NORTH, spnlMacrocasistiche, distanzaDaBordi, SpringLayout.SOUTH, pnlDatiCliente);
layoutMain.putConstraint(SpringLayout.WEST, spnlMacrocasistiche, distanzaDaBordi, SpringLayout.WEST, pnlMain);
layoutMain.putConstraint(SpringLayout.EAST, spnlMacrocasistiche, -distanzaDaBordi, SpringLayout.EAST, pnlMain);
frmMain.add(pnlMain);
creaFinestraDettagliCasistiche();
frmMain.validate();
//frmMain.pack();
frmMain.setVisible(true);
frmMain.setAlwaysOnTop(true);
}
JFrame frmDettagli;
JPanel pnlDettagli;
JScrollPane spnlDettagli;
CardLayout layoutPnlDettagli = new CardLayout();
SpringLayout layoutPnlCasistiche = new SpringLayout();
private void creaFinestraDettagliCasistiche() {
int larghezzaFrmDettagli = (int)(grandezzaSchermo.getWidth() * 0.15);
int altezzaFrmDettagli = altezzaMain;
frmDettagli = new JFrame();
frmDettagli.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frmDettagli.setTitle("Controllo documenti ESE");
frmDettagli.setSize(larghezzaFrmDettagli, altezzaFrmDettagli);
Point inizioFrmDettagli = new Point((int)(inizioMain.getX() - frmDettagli.getWidth()), (int)(inizioMain.getY()));
frmDettagli.setLocation(inizioFrmDettagli);
pnlDettagli = new JPanel(layoutPnlDettagli);
Dimension dimMinPnlDettagli = new Dimension((int)(frmDettagli.getWidth()), (int)frmDettagli.getHeight());
pnlDettagli.setPreferredSize(dimMinPnlDettagli);
iFoglio = 1;
Sheet sAppoggio;
JPanel[] pnlCasistiche = new JPanel[nFogli];
JPanelCaso[] pnlCaso;
while (iFoglio < nFogli - 1) {
iFoglio++;
sAppoggio = wbDbCommentiEse.getSheet(iFoglio);
righe = sAppoggio.getRows();
colonne = sAppoggio.getColumns();
riga = 0;
colonna = 0;
pnlCasistiche[iFoglio] = new JPanel(layoutPnlCasistiche);
pnlCasistiche[iFoglio].setBorder(BorderFactory.createTitledBorder(sAppoggio.getName()));
pnlCaso = new JPanelCaso[righe];
while (riga < righe) {
pnlCaso[riga] = new JPanelCaso(sAppoggio.getCell(colonna, riga).getContents(), sAppoggio.getCell(colonna + 1, riga).getContents());
//pnlCasistiche[iFoglio].add(new JLabel("Prova"));
pnlCasistiche[iFoglio].setSize(frmDettagli.getSize());
if (riga == 0) {
layoutPnlCasistiche.putConstraint(SpringLayout.NORTH, pnlCaso[riga], distanzaDaBordi, SpringLayout.NORTH, pnlCasistiche[iFoglio]);
layoutPnlCasistiche.putConstraint(SpringLayout.WEST, pnlCaso[riga], distanzaDaBordi, SpringLayout.WEST, pnlCasistiche[iFoglio]);
layoutPnlCasistiche.putConstraint(SpringLayout.EAST, pnlCaso[riga], distanzaDaBordi, SpringLayout.EAST, pnlCasistiche[iFoglio]);
} else {
layoutPnlCasistiche.putConstraint(SpringLayout.NORTH, pnlCaso[riga], distanzaTraCasi, SpringLayout.SOUTH, pnlCaso[riga - 1]);
layoutPnlCasistiche.putConstraint(SpringLayout.WEST, pnlCaso[riga], distanzaDaBordi, SpringLayout.WEST, pnlCasistiche[iFoglio]);
layoutPnlCasistiche.putConstraint(SpringLayout.EAST, pnlCaso[riga], distanzaDaBordi, SpringLayout.EAST, pnlCasistiche[iFoglio]);
}
pnlCasistiche[iFoglio].add(pnlCaso[riga]);
riga++;
}
pnlDettagli.add(pnlCasistiche[iFoglio], sAppoggio.getName());
}
pnlDettagli.addMouseListener(new MouseListener() {
...
@Override
public void mouseExited(MouseEvent e) {
frmDettagli.dispose();
}
...
});
frmDettagli.add(pnlDettagli);
frmDettagli.validate();
}
}
公共类指南{
公共静态void main(字符串[]args){
javax.swing.SwingUtilities.invokeLater(新的Runnable(){
公开募捐{
新指南();
}
});
}
公共指南(){
creaFinestraMain();
}
工作簿wbDbCommentiEse=null;
维度grandezzaSchermo=Toolkit.getDefaultToolkit().getScreenSize();
int larghezzaMain=(int)(grandezzaSchermo.getWidth()*0.20);
int-altezzaMain=(int)(grandzzaschermo.getHeight()*0.95);
Point Inighiomain=新点((int)grandzzaschermo.getWidth()-larghezzaMain,0);
JFrame frmMain=新JFrame();
int-nFogli;
int-iFoglio=0;
int righe;//控制所有最终的权利
int colonne;//请控制iFoglio fino all'ultima piena
因特里加;
内柱廊;
int distanzaTraCasi=5;
int distanzaDaBordi=0;
静态JTextArea txtaFrasiTrovate;
私有void creaFinestraMain(){
试一试{
wbdcommentiese=Workbook.getWorkbook(新文件(“db.xls”);
}捕获(双飞例外e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
nFogli=wbdcommentiese.getNumberOfSheets();
...
SpringLayoutLayoutMain=新的SpringLayout();
JPanel pnlMain=新的JPanel(layoutMain);
...
//宏观科学研究中心==================================================
JPanel pnlmacrostiche=新JPanel(新网格布局(nFogli-2,1));
JScrollPane spnlMacrocasistiche=null;
JButton[]btnMacrocasistiche=new JButton[nFogli];//根据far更正的原始元素列表文件excel con l'indice dei fogli nell'数组
萨波吉奥;
iFoglio++;
while(iFoglio frmMain.add(pnlMain);
//frmMain.pack();
frmMain.setVisible(true);
frmMain.setAlwaysOnTop(true);
creaFinestraDettagliCasistiche();
frmMain.add(pnlMain);
creaFinestraDettagliCasistiche();
frmMain.pack();
frmMain.setVisible(true);
frmMain.setAlwaysOnTop(true);