|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
Java esiste il listBox?
in java esiste un qualcosa di simile al listBox di Vb?
ho bisogno di caricare nel listBox i dati da un file di testo e poi per esempio creare un menu sul tasto destro per poter eliminare la stringa selezionata... grazie |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
Ad occhio direi JList, ma non conosco con precisione il funzionamento di una list-box in VB. Prova a dare un'occhiata alla documentazione Java (JList e DefaultListModel)
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
grazie a entrambi...ma ora mi chiedo una cosa...con una JList è possibile caricare i dati da un file di testo?
grazie |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
In teoria gli oggetti conenuti nelle celle della jList sono degli Object...perciò ci puoi mettere qualunque cose... Nel tuo caso andranno messe delle Stringhe lette sequenzialmente dal File..
Poi le scelte implementative sono molte, sai come leggere i dati da un file testo? Sai come caricare una Lista? Devi caricarla all'inizio o man mano che leggi dal file? Ultima modifica di cn73 : 17-03-2004 alle 17:01. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
ok sono riuscito a leggerli dal file...ma ora ho un problema...
io uso BorderLayout quindi east west ecc... ora dove lo devo aggiungere lo scrollPane?? se lo aggiungo al mio pannello senza dargli la posizione mi rimpicciolisce la larghezza del Jframe... come devo fare per mettere lo scrollPane?? grazie! |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
Mi sembra molto strano che l'aggiunta di un JScrollPane ti rimpicciloisca il JFrame...
Comuqnue passa il componente da inserire nel JScrollPane direttamente nel costruttore del JScrollPane cioè: JScrollPane scroll = new JScrollPane(componente) e non JScrollPane scroll = new JScrollPane(); scroll.add(componente). per il resto, il posizionamento all'interno del JPanel dipende solo da dove tu lo vuoi mettere, a nord, ad est, ad ovest a sud o al centro.
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
Quote:
ciao |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
Ma dentro lo scroller ci devi mettere la JList?
Ad ogni modo, per poter aggiungere più di 5 componenti in un pannello con BorderLayout non aggiungere nel pannello principale direttamente i componenti (cioè i bottoni, le Jlist, ecc ecc) ma aggiungi per esempio un altro pannello al quale puoi aggiungere due o piu componenti. se non hai capito manda uno schizzo di come vuoi posizionati i tuoi componenti e ti propongo una possibile soluzione.
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
allora io ho fatto così:
Codice:
cerca = new JTextField(30);
cercaLbl = new JLabel("Cerca",SwingConstants.LEFT);
cercaBt = new JButton("Cerca");
listModel = new DefaultListModel();
lista = new JList(listModel);
JScrollPane scroll = new JScrollPane(lista);
cercaBt.addActionListener(this);
mioPanel.add("West",cercaLbl);
mioPanel.add("Center",cerca);
mioPanel.add("East",cercaBt);
tutto.add(lista);
tutto.add(scroll);
mioPanel.add("South",tutto);
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Non devi aggiungere sia lista che scroll... la lista va nello scrollpane ed è solo quest'ultimo che va aggiunto...
Aggingilo in centro, è il componente più oneroso in termin di spazio...fai un pannello he contenga tutti i bottoni e aggiungilo a sud.Ricordatio di richiamare un bel pack() sul frame quando hai finito di creare la gui... Ultima modifica di cn73 : 18-03-2004 alle 15:59. |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
niente non ne vuole sapere di aggiungermelo...allora io faccio così...
Codice:
mioFrame = new JFrame("Cerca");
mioFrame.setUndecorated(true);
mioFrame.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
mioPanel = new JPanel();
tutto = new JPanel();
mioPanel.setLayout(new BorderLayout(30,30));
tutto.setLayout(new BorderLayout(30,30));
cerca = new JTextField(30);
cercaLbl = new JLabel("Cerca",SwingConstants.LEFT);
cercaBt = new JButton("Cerca");
listModel = new DefaultListModel();
lista = new JList(listModel);
JScrollPane scroll = new JScrollPane(lista);
cercaBt.addActionListener(this);
mioPanel.add("West",cercaLbl);
mioPanel.add("Center",cerca);
mioPanel.add("East",cercaBt);
tutto.add("Center",lista);
mioFrame.getContentPane().add(mioPanel, BorderLayout.NORTH);
mioFrame.getContentPane().add(tutto, BorderLayout.SOUTH);
mioFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mioFrame.pack();
mioFrame.setVisible(true);
grazie ancora |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Devi aggiungere lo scroll non la lista! Te l'ho detto prima
Codice:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Prova2 extends JFrame implements ActionListener{
JFrame mioFrame ;
JPanel mioPanel ;
JPanel tutto;
JTextField cerca;
JLabel cercaLbl;
JButton cercaBt ;
DefaultListModel listModel ;
JList lista ;
JScrollPane scroll;
public Prova2() {
super ("Cerca");
mioPanel = new JPanel();
tutto = new JPanel();
mioPanel.setLayout(new FlowLayout());
tutto.setLayout(new BorderLayout(30,30));
cerca = new JTextField(30);
cercaLbl = new JLabel("Cerca",SwingConstants.LEFT);
cercaBt = new JButton("Cerca");
listModel = new DefaultListModel();
lista = new JList(listModel);
scroll = new JScrollPane(lista);
cercaBt.addActionListener(this);
mioPanel.add(cercaLbl);
mioPanel.add(cerca);
mioPanel.add(cercaBt);
tutto.add(scroll, BorderLayout.CENTER);
getContentPane().add(mioPanel, BorderLayout.SOUTH);
getContentPane().add(tutto, BorderLayout.CENTER);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent e){
if (e.getSource() == cercaBt)
System.out.println("AZIONE CERCA!");
}
public static void main(String arg[]) {
Prova2 p = new Prova2();
}
}
|
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
Quote:
ora funziona!ma ho un'altra domanda...se volessi mettere lo scroller anche in basso?e un'altra cosa come faccio a impostare le dimensioni del frame?ho provato con setSize() ma non cambiano le dimensioni... ciao,grazie! |
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Lo scroller anche in basso?? cioè?
IL settaggio delle dimensioni di un frame dovrenne andare con setSize() o setPreferredSize()... cmq ti conviene dare una dimensione ai componenti, ad es allo scrollPane... tutto si regolerà di conseguenza...prova a non mettere il pack() (che aggiusta le dimensioni dei componenti in maniera ottimale) dopo il setSize() ti renderai conto di cosa succede e di come correggere Ultima modifica di cn73 : 18-03-2004 alle 17:13. |
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
Quote:
ciao! |
|
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Fare così non è un buon metodo, perche le dimensioni dello schermo non sono fisse (800 x 600, 1024 x 768) e quella che a te sembra una ottima GUI sul tuo pc può diventare una schifezza su un altro pc
|
|
|
|
|
|
#18 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:09.



















