|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
[JAVA] Coordinare due scroller
come faccio a rendere due scroller coordinati???
praticamente ho due tabelle ceh devono scorrere allo stesso modo.
__________________
My gaming placement |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Spero di non aver detto fesserie, perché non ho mai fatto una cosa del genere. Se è corretto, dovrebbe essere più o meno così.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
comunque, tra te e pgi-bis, potreste tenere corsi avanzati di java, ci avete mai pensato
__________________
My gaming placement |
|
|
|
|
|
|
#4 | ||
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Codice:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ProvaFrame extends JFrame implements AdjustmentListener
{
private JScrollBar scroll1;
private JScrollBar scroll2;
public ProvaFrame ()
{
super ("Prova scrollbar");
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
setSize (300, 300);
scroll1 = new JScrollBar ();
scroll2 = new JScrollBar ();
scroll1.addAdjustmentListener (this);
scroll2.addAdjustmentListener (this);
add (scroll1, BorderLayout.WEST);
add (scroll2, BorderLayout.EAST);
}
public static void main (String[] args)
{
SwingUtilities.invokeLater (new Runnable()
{
public void run ()
{
ProvaFrame f = new ProvaFrame ();
f.setVisible (true);
}
});
}
public void adjustmentValueChanged (AdjustmentEvent e)
{
if (e.getSource () == scroll1)
scroll2.setValue (scroll1.getValue ());
else if (e.getSource () == scroll2)
scroll1.setValue (scroll2.getValue ());
}
}
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
||
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
grazie mille
__________________
My gaming placement |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Quote:
Liberticidi – stando ai giornali – ma non allocchi. Una volta ero portatore sano di quei deliri di onnipotenza alla "io potrei trasformare anche un sasso in un programmatore Java". Finchè i sassi non me li son trovati lì per davvero. Da sassi li ho portati a rocce, da rocce a macigni, da macigni a ghiaia e, non c'è trucco non c'è inganno, da ghiaia di nuovo a sassi. Pertanto io mi trovo nell'invidiabile posizione di chi ha le prove obiettive che dopo quel "sicuramente" ci va un NO. E di questi tempi avere una certezza è un lusso mica da ridere |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
[mini OT] Un anno fa ho fatto colloqui in 2 aziende che usano esclusivamente Java. Risultato: scartato perché a detta loro non avevo le conoscenze sufficienti su Java. Ed era sicuramente vero. In quest'ultimo anno ho cercato di acquisire, studiare, imparare, sperimentare il più possibile su Java. Perché se al prossimo colloquio succede la stessa cosa, faccio azienda.shutdownAndKillTheBoss (); [/mini OT]
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Quote:
Una volta un amico m'ha chiesto se conoscessi un programmatore junior (cioè parliamo di 1 anno di esperienza) che sapesse: java , j2ee, struts, jsf, swing, itext, jdbc più sql oracle e html-javascript. "Ma bene". Ma che bene e bene, manco Gosling le sa 'ste robe Che poi, stando a quanto mi dice un altro amico che si occupa di formazione, alla fine li rincoglioniscono di servlet http. Mi chiedo sinceramente quanto ci sia da stupirsi se poi la gente grida "miracolo è arrivato ajax!". Io ho un manuale di Javascript che ha sei anni, se gli attacco sul fianco la scritta "AIAX" è la stessa cosa e la gente si strappa i capelli. Miracolo miracolo Personalmente finisco quello che devo e poi anno nuovo vita nuova: mollo tutto e tanti saluti. E ogni volta che sento un pirla mettersi a parlare di "liquid computing" scrivo nel blog un "ma va da via 'l cu" |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
c'è un problema, io devo usre 2 JScrollPane, e non JScrollBar, perchè altrimenti con le tabelle mi da errore al
Codice:
scrollerSinistro.setViewportView(getTabellaSinistra()); come posso correggere???
__________________
My gaming placement |
|
|
|
|
|
#10 | ||
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
||
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
allora
Codice:
package user_interface;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import java.awt.BorderLayout;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import javax.swing.JButton;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
public class TabellaPayoff extends JFrame implements AdjustmentListener{
private static final long serialVersionUID = 1L;
private JPanel pannello = null;
private JPanel centrale = null;
private int numeroPartite;
private int numeroGiocatori;
private int numeroStrategie;
private JScrollPane scrollerCentrale = null;
private JTable tabellaCentrale = null;
private JPanel laterale = null;
private JScrollPane scrollerSinistro = null;
private JTable tabellaSinistra = null;
private JPanel sotto = null;
private JButton avviaSimulazione = null;
private JButton esci = null;
/**
* This is the default constructor
*/
public TabellaPayoff() {
super();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(600, 500);
this.setContentPane(getPannello());
this.setTitle("Tabella Inserimento dei payoff");
}
/**
* This method initializes pannello
*
* @return javax.swing.JPanel
*/
private JPanel getPannello() {
if (pannello == null) {
BorderLayout borderLayout = new BorderLayout();
borderLayout.setHgap(0);
pannello = new JPanel();
pannello.setLayout(borderLayout);
pannello.add(getCentrale(),BorderLayout.CENTER);
pannello.add(getLaterale(), BorderLayout.WEST);
pannello.add(getScrollerCentrale(), BorderLayout.CENTER);
pannello.add(getSotto(), BorderLayout.SOUTH);
}
return pannello;
}
/**
* This method initializes centrale
*
* @return javax.swing.JPanel
*/
private JPanel getCentrale() {
if (centrale == null) {
GridBagConstraints gridBagConstraints = new GridBagConstraints();
gridBagConstraints.fill = GridBagConstraints.BOTH;
gridBagConstraints.gridy = 0;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.gridx = 0;
centrale = new JPanel();
centrale.setLayout(new GridBagLayout());
centrale.add(getScrollerCentrale(), gridBagConstraints);
}
return centrale;
}
/**
* This method initializes scrollerCentrale
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getScrollerCentrale() {
if (scrollerCentrale == null) {
scrollerCentrale = new JScrollPane();
scrollerCentrale.getVerticalScrollBar().addAdjustmentListener(this);
scrollerCentrale.setViewportView(getTabellaCentrale());
}
return scrollerCentrale;
}
/**
* This method initializes tabellaCentrale
*
* @return javax.swing.JTable
*/
private JTable getTabellaCentrale() {
if (tabellaCentrale == null) {
String [] colonne=new String[this.getNumeroStrategie()];
for(int i=0;i<colonne.length;++i){
colonne[i]="Strategia n°"+(1+i);
}
String [][]matrice=new String[(int) Math.pow(this.getNumeroStrategie(),this.getNumeroGiocatori()-1)][this.getNumeroStrategie()];
for(int i=0;i<matrice.length;i++){
for(int j=0;j<matrice[0].length;j++){
matrice[i][j]="0,0,0";
}
}
tabellaCentrale = new JTable(matrice,colonne);
}
return tabellaCentrale;
}
/**
* This method initializes laterale
*
* @return javax.swing.JPanel
*/
private JPanel getLaterale() {
if (laterale == null) {
GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
gridBagConstraints1.fill = GridBagConstraints.BOTH;
gridBagConstraints1.weighty = 1.0;
gridBagConstraints1.weightx = 1.0;
laterale = new JPanel();
laterale.setLayout(new GridBagLayout());
laterale.add(getScrollerSinistro(), gridBagConstraints1);
}
return laterale;
}
/**
* This method initializes scrollerSinistro
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getScrollerSinistro() {
if (scrollerSinistro == null) {
scrollerSinistro = new JScrollPane();
scrollerSinistro.getVerticalScrollBar().addAdjustmentListener(this);
scrollerSinistro.setViewportView(getTabellaSinistra());
}
return scrollerSinistro;
}
/**
* This method initializes tabellaSinistra
*
* @return javax.swing.JTable
*/
private JTable getTabellaSinistra() {
if (tabellaSinistra == null) {
String [] colonne=new String[this.getNumeroGiocatori()-1];
for(int i=0;i<colonne.length;++i){
colonne[i]="Giocatore n°"+(1+i);
}
String [][]matrice=new String[(int) Math.pow(this.getNumeroStrategie(),this.getNumeroGiocatori()-1)][this.getNumeroGiocatori()-1];
for(int j=matrice[0].length-1;j>=0;j--){
int cnt=0;
int k=matrice[0].length-1-j;
int count=(int) Math.pow(this.getNumeroStrategie(),k);
System.out.print(count);
for(int i=0;i<matrice.length;i++){
matrice[i][j]="Strategia "+(1+cnt%this.getNumeroStrategie());
count--;
if(count<=0){
count=(int) Math.pow(this.getNumeroStrategie(),k);
cnt++;
}
}
}
tabellaSinistra = new JTable(matrice,colonne);
tabellaSinistra.setEnabled(false);
}
return tabellaSinistra;
}
/**
* This method initializes sotto
*
* @return javax.swing.JPanel
*/
private JPanel getSotto() {
if (sotto == null) {
GridBagConstraints gridBagConstraints2 = new GridBagConstraints();
gridBagConstraints2.gridx = 1;
gridBagConstraints2.gridy = 0;
sotto = new JPanel();
sotto.setLayout(new GridBagLayout());
sotto.add(getAvviaSimulazione(), new GridBagConstraints());
sotto.add(getEsci(), gridBagConstraints2);
}
return sotto;
}
/**
* This method initializes avviaSimulazione
*
* @return javax.swing.JButton
*/
private JButton getAvviaSimulazione() {
if (avviaSimulazione == null) {
avviaSimulazione = new JButton();
avviaSimulazione.setText("Avvia la simulazione");
}
return avviaSimulazione;
}
public void setValori(String text, String text2, String text3) {
this.setNumeroGiocatori(Integer.parseInt(text));
this.setNumeroStrategie(Integer.parseInt(text2));
this.setNumeroPartite(Integer.parseInt(text3));
}
private int getNumeroGiocatori() {
return numeroGiocatori;
}
private void setNumeroGiocatori(int numeroGiocatori) {
this.numeroGiocatori = numeroGiocatori;
}
private int getNumeroPartite() {
return numeroPartite;
}
private void setNumeroPartite(int numeroPartite) {
this.numeroPartite = numeroPartite;
}
private int getNumeroStrategie() {
return numeroStrategie;
}
private void setNumeroStrategie(int numeroStrategie) {
this.numeroStrategie = numeroStrategie;
}
public void avvia() {
this.initialize();
this.setExtendedState(JFrame.MAXIMIZED_BOTH);//this.setSize(Toolkit.getDefaultToolkit().getScreenSize());
this.setVisible(true);
}
/**
* This method initializes esci
*
* @return javax.swing.JButton
*/
private JButton getEsci() {
if (esci == null) {
esci = new JButton();
esci.setText("Esci");
esci.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.exit(0);
}
});
}
return esci;
}
public void adjustmentValueChanged(AdjustmentEvent e) {
if (e.getSource () == scrollerCentrale)
scrollerSinistro.getVerticalScrollBar().setValue (scrollerCentrale.getVerticalScrollBar().getValue ());
else if (e.getSource () == scrollerSinistro)
scrollerCentrale.getVerticalScrollBar().setValue (scrollerSinistro.getVerticalScrollBar().getValue ());
}
} // @jve:decl-index=0:visual-constraint="35,4"
senti, sarebbe possibile, eventualmente, evidenziare una riga di una tabella in base alla cella selezionata in un'altra tabella??? tipo, tabella1 e tabella2, seleziono cella di tabella2 [3,4], vogli che mi evidenzi la riga 3 di tabella1, è fattibile???
__________________
My gaming placement |
|
|
|
|
|
#12 | ||
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Codice:
if (e.getSource () == scrollerCentrale) else if (e.getSource () == scrollerSinistro) Quote:
P.S. non mi è molto chiaro perché hai dovuto (o voluto?) spezzettare l'inizializzazione dei vari componenti in più metodi e lasciare così che la creazione venisse fatta "a catena" appena si chiamano i metodi. Non bastava (ed era più semplice) fare la creazione dei componenti e del layout nel costruttore??
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
||
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
Codice:
if (e.getSource () == scrollerCentrale.getVerticalScrollBar())
scrollerSinistro.getVerticalScrollBar().setValue (scrollerCentrale.getVerticalScrollBar().getValue ());
else if (e.getSource () == scrollerSinistro.getVerticalScrollBar())
scrollerCentrale.getVerticalScrollBar().setValue (scrollerSinistro.getVerticalScrollBar().getValue ());
__________________
My gaming placement |
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
risolto, come avevo detto io nell'ultimo post
__________________
My gaming placement |
|
|
|
|
|
#15 | ||
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
||
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
__________________
My gaming placement |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:26.


















