24/10/20 7:13
CuocoJordan
i pare di aver scritto tutto bene ma i pulsanti non vengono visualizzati.
il file è questo:
import java.awt.*;
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Nord extends JFrame {
int D_W = 1350;
int D_H = 700;
int xn = 603; //POSIZIONE partenza orrizzontale avanti
int yn = 0; //posizion partenza nORD
// COMPONENTI
DrawPanel drawPanel = new DrawPanel();
class Bottoni extends JFrame{
// classi interne per la gestione degli eventi
class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
Button source = (Button)event.getSource();
//String message = null;
if (source == ovestButton) sayOvest();
else if (source == sudButton) saySud();
else if (source == estButton) sayEst();
else if (source == nordButton) sayNord();
else if (source == esciButton) sayEsci();
}
}
class FrameListener extends WindowAdapter {
public void windowClosed(WindowEvent e) {
System.exit(0);
}}
// componenti
BorderLayout layout = new BorderLayout();
Panel contentPanel = new BorderedPanel();
Button esciButton = new Button();
Button nordButton= new Button();
Button sudButton= new Button();
Button estButton= new Button();
Button ovestButton= new Button();
Label messageLabel = new Label();
// listener
FrameListener frameListener = new FrameListener();
ButtonListener buttonListener = new ButtonListener();
public Bottoni() {
// inserisce il Panel nel JFrame
this.add(contentPanel, BorderLayout.CENTER);
// assegna il listener al Jframe
this.addWindowListener(frameListener);
//imposta il layout del Frame
this.setLayout(layout);
//imposta le proprietà dei pulsanti
nordButton.setLabel("Partenza NORD"
sudButton.setLabel("Partenza SUD"
estButton.setLabel("Partenza EST"
ovestButton.setLabel("Partenza OVEST"
esciButton.setLabel("ESCI"
//inserisce i pulsanti e la label nel Panel
contentPanel.add(nordButton);
contentPanel.add(sudButton);
contentPanel.add(estButton);
contentPanel.add(ovestButton);
contentPanel.add(esciButton);
contentPanel.add(messageLabel);
//inserisce il Panel nel Frame
this.add(contentPanel, BorderLayout.CENTER);
//assegna il listener al frame
this.addWindowListener(frameListener);
//collega il listener ai pulsanti
nordButton.addActionListener(buttonListener);
sudButton.addActionListener(buttonListener);
estButton.addActionListener(buttonListener);
ovestButton.addActionListener(buttonListener);
esciButton.addActionListener(buttonListener);
}
public void sayNord() {
messageLabel.setText("Nord partita"
validate();
}
public void sayEst() {
messageLabel.setText("Est partita"
validate();
}
public void sayOvest() {
messageLabel.setText("Ovest partita"
validate();
}
public void saySud() {
messageLabel.setText("Sud partita"
validate();
}
public void sayEsci() {
messageLabel.setText("FINE DEI GIOCHI"
validate();
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {}
dispose();
}
/*
public static void main(String[] args) {
new Bottoni().setVisible(true);
}
*/
class BorderedPanel extends Panel {
BorderedPanel() {
FlowLayout layout = (FlowLayout)getLayout();
layout.setAlignment(FlowLayout.RIGHT);
} ; } }
public Nord() {
ActionListener listener = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
if (yn >= D_H) {
yn = 0; //posizione partenza Nord
drawPanel.repaint();
}
//*
if (yn == 190) {
yn = 190; //posizione stop Nord
//drawPanel.repaint();
}
//*/
else {
yn += 5;
drawPanel.repaint();
}
}
};
Timer timer = new Timer(50, listener);
timer.start();
add(drawPanel);
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
private class DrawPanel extends JPanel {
protected void paintComponent(Graphics g) {
super.paintComponent(g);
//colori RGB
Color myRosso = new Color(255, 0, 0); // Color red
Color myRossoSpento = new Color(130, 0, 0); // Color red
Color myBlu = new Color(50,50, 255); // Color blu
Color myYellow = new Color(255,255, 0); // Color giallo
Color myGiallo = new Color(200,200, 0); // Color giallo
Color myGialloSpento = new Color(100,100, 0); // Color giallo
Color myVerde = new Color(0,250,0); // Color verde
Color myVerdeSpento = new Color(0,100,0); // Color verde
//strada
g.setColor(Color.gray);
g.fillRect(0,250,1400,100); // strada orrizzontale
g.fillRect(600,0,100,710); // strada verticale
//assegna spessore di linea
((Graphics2D)g).setStroke( new BasicStroke(4.0f) );
g.setColor(Color.white);
g.drawLine(0,300,598,300); //orrizzontale sinistra
g.drawLine(702,300,1400,300); //orrizzontale destra
g.drawLine(650,0,650,245); // verticale alto
g.drawLine(650,750,650,353); // verticale basso
//assegna spessore di linea TRATTEGGIATA
((Graphics2D)g).setStroke( new BasicStroke(2.0f) );
// Linea tratteggiata orrizzontale destra
for(int i=710; i<=1590; i=i+20){ // 10 spazio corto 50 spazio lungo
g.drawLine(i+10,275,i,275); // linea 1 corta 10 lunga
}
// Linea tratteggiata orrizzontale destra opposta
for(int i=700; i<=1590; i=i+20){ // 10 spazio corto 50 spazio lungo
g.drawLine(i+10,325,i,325); // linea 1 corta 10 lunga
}
// Linea tratteggiata orrizzontale sinistra
for(int i=0; i<=590; i=i+20){ // 10 spazio corto 50 spazio lungo
g.drawLine(i+10,325,i,325); // linea 1 corta 10 lunga
}
// Linea tratteggiata orrizzontale sinistra opposta
for(int i=7; i<=597; i=i+20){ // 10 spazio corto 50 spazio lungo
g.drawLine(i+10,275,i,275); // linea 1 corta 10 lunga
}
// Linea tratteggiata verticale alto
for(int i=10; i<=235; i=i+20){ // 10 spazio corto 50 spazio lungo
g.drawLine(628,i+10,628,i); // linea 1 corta 10 lunga
}
// Linea tratteggiata verticale alto opposta
for(int i=0; i<=240; i=i+20){ // 10 spazio corto 50 spazio lungo
g.drawLine(676,i+10,676,i); // linea 1 corta 10 lunga
}
// Linea tratteggiata verticale basso
for(int i=370; i<=690; i=i+20){ // 10 spazio corto 50 spazio lungo
g.drawLine(676,i+10,676,i); // linea 1 corta 10 lunga
}
// Linea tratteggiata verticale basso opposta
for(int i=350; i<=700; i=i+20){ // 10 spazio corto 50 spazio lungo
g.drawLine(628,i+10,628,i); // linea 1 corta 10 lunga
}
// assegna tratto di linea piu' spesso
((Graphics2D)g).setStroke( new BasicStroke(10.0f) );
g.drawLine(595,305,595,345); // stop sinistra
g.drawLine(705,255,705,296); // stop destra
g.drawLine(605,245,647,245); // stop alto
g.drawLine(655,355,695,355); // stop basso
/*
// semaforo verticale giallo
g.setColor(Color.black);
g.fillRect(562,165,38,85); // nero semaroro alto
g.fillRect(700,350,38,85); // nero semaforo basso
g.setColor(myGiallo);
g.fillOval(570,200,20,20); //semaforo giallo verticale sopra
g.fillOval(710,380,20,20); //semaforo giallo verticale sotto
g.setColor(myVerdeSpento);
g.fillOval(570,225,20,20); //semaforo verticale sopra
g.fillOval(710,355,20,20); //semaforo verticale sotto
g.setColor(myRossoSpento);
g.fillOval(570,175,20,20); //semaforo verticale sopra
g.fillOval(710,405,20,20); //semaforo verticale sotto
//semaforo verticale giallo spento
g.setColor(Color.black);
g.fillRect(562,165,38,85); // nero semaroro alto
g.fillRect(700,350,38,85); // nero semaforo basso
g.setColor(myGialloSpento);
g.fillOval(570,200,20,20); //semaforo giallo verticale sopra
g.fillOval(710,380,20,20); //semaforo giallo verticale sotto
g.setColor(myVerdeSpento);
g.fillOval(570,225,20,20); //semaforo verticale sopra
g.fillOval(710,355,20,20); //semaforo verticale sotto
g.setColor(myRossoSpento);
g.fillOval(570,175,20,20); //semaforo verticale sopra
g.fillOval(710,405,20,20); //semaforo verticale sotto
*/
//fondo nero semafori
g.setColor(Color.black);
g.fillRect(562,165,38,85); // semaroro alto
g.fillRect(700,350,38,85); // semaforo basso
g.fillRect(515,350,85,35); // semaroro sinistro
g.fillRect(700,220,85,30); // semaforo destro
//semafori gialli
g.setColor(myGialloSpento);
g.fillOval(730,225,20,20); //semaforo giallo orrizz destro
g.fillOval(550,355,20,20); //semaforo giallo orrizz sinistro
g.setColor(myGiallo);
g.fillOval(570,200,20,20); //semaforo giallo verticale sopra
g.fillOval(710,380,20,20); //semaforo giallo verticale sotto
//semafori verdi
g.setColor(myVerde);
g.fillOval(705,225,20,20); //semaforo orrizz destro
g.fillOval(575,355,20,20); //semaforo orrizz sinistro
g.setColor(myVerdeSpento);
g.fillOval(570,225,20,20); //semaforo verticale sopra
g.fillOval(710,355,20,20); //semaforo verticale sotto
//semafori rossi
g.setColor(myRossoSpento);
g.fillOval(755,225,20,20); //semaforo orrizz destro
g.fillOval(525,355,20,20); //semaforo orrizz sinistro
g.setColor(myRosso);
g.fillOval(570,175,20,20); //semaforo verticale sopra
g.fillOval(710,405,20,20); //semaforo verticale sotto
//AUTO
g.setColor(Color.red);
g.fillRect(603,0,20,40); // alto
g.setColor(myBlu);
g.fillRect(678,670,20,40); // basso
g.setColor(Color.green);
g.fillRect(0,328,40,20); // sinistra
g.setColor(myYellow);
g.fillRect(1315,252,40,20); // destro
//g.setColor(myBlue); g.fillRect(0, 0,350,50);
//SCRITTE POSIZIONE AUTO
g.setColor(myBlu);
g.setFont(new Font(g.getFont().getFontName(),Font.PLAIN,32) );
g.drawString("NORD",500,35); // coordinate della scritta
g.drawString("SUD",710,685); // coordinate della scritta SUD
g.drawString("OVEST",10,385); // coordinate della scritta EST
g.drawString("EST",1272,240); // coordinate della scritta OVEST
//scritte spiegazione chiusura
g.setColor(Color.black);
g.setFont(new Font(g.getFont().getFontName(),Font.PLAIN,16) );
g.drawString("Non si CHIUDE premendo la X",990,70);
g.drawString("Per CHIUDERE premi",1000,50); // coordinate della scritta PER USCIRE
g.setColor(Color.red);
g.drawString(" ESCI",1154,50);
g.setColor(Color.red);
g.fillRect(xn, yn, 20, 40); // formato rettangolo
}
public Dimension getPreferredSize() {
return new Dimension(D_W, D_H);
}
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
new Nord();
}
});
}
}
Ringrazio chi mi puà aiutare
il file è questo:
import java.awt.*;
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Nord extends JFrame {
int D_W = 1350;
int D_H = 700;
int xn = 603; //POSIZIONE partenza orrizzontale avanti
int yn = 0; //posizion partenza nORD
// COMPONENTI
DrawPanel drawPanel = new DrawPanel();
class Bottoni extends JFrame{
// classi interne per la gestione degli eventi
class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
Button source = (Button)event.getSource();
//String message = null;
if (source == ovestButton) sayOvest();
else if (source == sudButton) saySud();
else if (source == estButton) sayEst();
else if (source == nordButton) sayNord();
else if (source == esciButton) sayEsci();
}
}
class FrameListener extends WindowAdapter {
public void windowClosed(WindowEvent e) {
System.exit(0);
}}
// componenti
BorderLayout layout = new BorderLayout();
Panel contentPanel = new BorderedPanel();
Button esciButton = new Button();
Button nordButton= new Button();
Button sudButton= new Button();
Button estButton= new Button();
Button ovestButton= new Button();
Label messageLabel = new Label();
// listener
FrameListener frameListener = new FrameListener();
ButtonListener buttonListener = new ButtonListener();
public Bottoni() {
// inserisce il Panel nel JFrame
this.add(contentPanel, BorderLayout.CENTER);
// assegna il listener al Jframe
this.addWindowListener(frameListener);
//imposta il layout del Frame
this.setLayout(layout);
//imposta le proprietà dei pulsanti
nordButton.setLabel("Partenza NORD"
sudButton.setLabel("Partenza SUD"
estButton.setLabel("Partenza EST"
ovestButton.setLabel("Partenza OVEST"
esciButton.setLabel("ESCI"
//inserisce i pulsanti e la label nel Panel
contentPanel.add(nordButton);
contentPanel.add(sudButton);
contentPanel.add(estButton);
contentPanel.add(ovestButton);
contentPanel.add(esciButton);
contentPanel.add(messageLabel);
//inserisce il Panel nel Frame
this.add(contentPanel, BorderLayout.CENTER);
//assegna il listener al frame
this.addWindowListener(frameListener);
//collega il listener ai pulsanti
nordButton.addActionListener(buttonListener);
sudButton.addActionListener(buttonListener);
estButton.addActionListener(buttonListener);
ovestButton.addActionListener(buttonListener);
esciButton.addActionListener(buttonListener);
}
public void sayNord() {
messageLabel.setText("Nord partita"
validate();
}
public void sayEst() {
messageLabel.setText("Est partita"
validate();
}
public void sayOvest() {
messageLabel.setText("Ovest partita"
validate();
}
public void saySud() {
messageLabel.setText("Sud partita"
validate();
}
public void sayEsci() {
messageLabel.setText("FINE DEI GIOCHI"
validate();
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {}
dispose();
}
/*
public static void main(String[] args) {
new Bottoni().setVisible(true);
}
*/
class BorderedPanel extends Panel {
BorderedPanel() {
FlowLayout layout = (FlowLayout)getLayout();
layout.setAlignment(FlowLayout.RIGHT);
} ; } }
public Nord() {
ActionListener listener = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
if (yn >= D_H) {
yn = 0; //posizione partenza Nord
drawPanel.repaint();
}
//*
if (yn == 190) {
yn = 190; //posizione stop Nord
//drawPanel.repaint();
}
//*/
else {
yn += 5;
drawPanel.repaint();
}
}
};
Timer timer = new Timer(50, listener);
timer.start();
add(drawPanel);
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
private class DrawPanel extends JPanel {
protected void paintComponent(Graphics g) {
super.paintComponent(g);
//colori RGB
Color myRosso = new Color(255, 0, 0); // Color red
Color myRossoSpento = new Color(130, 0, 0); // Color red
Color myBlu = new Color(50,50, 255); // Color blu
Color myYellow = new Color(255,255, 0); // Color giallo
Color myGiallo = new Color(200,200, 0); // Color giallo
Color myGialloSpento = new Color(100,100, 0); // Color giallo
Color myVerde = new Color(0,250,0); // Color verde
Color myVerdeSpento = new Color(0,100,0); // Color verde
//strada
g.setColor(Color.gray);
g.fillRect(0,250,1400,100); // strada orrizzontale
g.fillRect(600,0,100,710); // strada verticale
//assegna spessore di linea
((Graphics2D)g).setStroke( new BasicStroke(4.0f) );
g.setColor(Color.white);
g.drawLine(0,300,598,300); //orrizzontale sinistra
g.drawLine(702,300,1400,300); //orrizzontale destra
g.drawLine(650,0,650,245); // verticale alto
g.drawLine(650,750,650,353); // verticale basso
//assegna spessore di linea TRATTEGGIATA
((Graphics2D)g).setStroke( new BasicStroke(2.0f) );
// Linea tratteggiata orrizzontale destra
for(int i=710; i<=1590; i=i+20){ // 10 spazio corto 50 spazio lungo
g.drawLine(i+10,275,i,275); // linea 1 corta 10 lunga
}
// Linea tratteggiata orrizzontale destra opposta
for(int i=700; i<=1590; i=i+20){ // 10 spazio corto 50 spazio lungo
g.drawLine(i+10,325,i,325); // linea 1 corta 10 lunga
}
// Linea tratteggiata orrizzontale sinistra
for(int i=0; i<=590; i=i+20){ // 10 spazio corto 50 spazio lungo
g.drawLine(i+10,325,i,325); // linea 1 corta 10 lunga
}
// Linea tratteggiata orrizzontale sinistra opposta
for(int i=7; i<=597; i=i+20){ // 10 spazio corto 50 spazio lungo
g.drawLine(i+10,275,i,275); // linea 1 corta 10 lunga
}
// Linea tratteggiata verticale alto
for(int i=10; i<=235; i=i+20){ // 10 spazio corto 50 spazio lungo
g.drawLine(628,i+10,628,i); // linea 1 corta 10 lunga
}
// Linea tratteggiata verticale alto opposta
for(int i=0; i<=240; i=i+20){ // 10 spazio corto 50 spazio lungo
g.drawLine(676,i+10,676,i); // linea 1 corta 10 lunga
}
// Linea tratteggiata verticale basso
for(int i=370; i<=690; i=i+20){ // 10 spazio corto 50 spazio lungo
g.drawLine(676,i+10,676,i); // linea 1 corta 10 lunga
}
// Linea tratteggiata verticale basso opposta
for(int i=350; i<=700; i=i+20){ // 10 spazio corto 50 spazio lungo
g.drawLine(628,i+10,628,i); // linea 1 corta 10 lunga
}
// assegna tratto di linea piu' spesso
((Graphics2D)g).setStroke( new BasicStroke(10.0f) );
g.drawLine(595,305,595,345); // stop sinistra
g.drawLine(705,255,705,296); // stop destra
g.drawLine(605,245,647,245); // stop alto
g.drawLine(655,355,695,355); // stop basso
/*
// semaforo verticale giallo
g.setColor(Color.black);
g.fillRect(562,165,38,85); // nero semaroro alto
g.fillRect(700,350,38,85); // nero semaforo basso
g.setColor(myGiallo);
g.fillOval(570,200,20,20); //semaforo giallo verticale sopra
g.fillOval(710,380,20,20); //semaforo giallo verticale sotto
g.setColor(myVerdeSpento);
g.fillOval(570,225,20,20); //semaforo verticale sopra
g.fillOval(710,355,20,20); //semaforo verticale sotto
g.setColor(myRossoSpento);
g.fillOval(570,175,20,20); //semaforo verticale sopra
g.fillOval(710,405,20,20); //semaforo verticale sotto
//semaforo verticale giallo spento
g.setColor(Color.black);
g.fillRect(562,165,38,85); // nero semaroro alto
g.fillRect(700,350,38,85); // nero semaforo basso
g.setColor(myGialloSpento);
g.fillOval(570,200,20,20); //semaforo giallo verticale sopra
g.fillOval(710,380,20,20); //semaforo giallo verticale sotto
g.setColor(myVerdeSpento);
g.fillOval(570,225,20,20); //semaforo verticale sopra
g.fillOval(710,355,20,20); //semaforo verticale sotto
g.setColor(myRossoSpento);
g.fillOval(570,175,20,20); //semaforo verticale sopra
g.fillOval(710,405,20,20); //semaforo verticale sotto
*/
//fondo nero semafori
g.setColor(Color.black);
g.fillRect(562,165,38,85); // semaroro alto
g.fillRect(700,350,38,85); // semaforo basso
g.fillRect(515,350,85,35); // semaroro sinistro
g.fillRect(700,220,85,30); // semaforo destro
//semafori gialli
g.setColor(myGialloSpento);
g.fillOval(730,225,20,20); //semaforo giallo orrizz destro
g.fillOval(550,355,20,20); //semaforo giallo orrizz sinistro
g.setColor(myGiallo);
g.fillOval(570,200,20,20); //semaforo giallo verticale sopra
g.fillOval(710,380,20,20); //semaforo giallo verticale sotto
//semafori verdi
g.setColor(myVerde);
g.fillOval(705,225,20,20); //semaforo orrizz destro
g.fillOval(575,355,20,20); //semaforo orrizz sinistro
g.setColor(myVerdeSpento);
g.fillOval(570,225,20,20); //semaforo verticale sopra
g.fillOval(710,355,20,20); //semaforo verticale sotto
//semafori rossi
g.setColor(myRossoSpento);
g.fillOval(755,225,20,20); //semaforo orrizz destro
g.fillOval(525,355,20,20); //semaforo orrizz sinistro
g.setColor(myRosso);
g.fillOval(570,175,20,20); //semaforo verticale sopra
g.fillOval(710,405,20,20); //semaforo verticale sotto
//AUTO
g.setColor(Color.red);
g.fillRect(603,0,20,40); // alto
g.setColor(myBlu);
g.fillRect(678,670,20,40); // basso
g.setColor(Color.green);
g.fillRect(0,328,40,20); // sinistra
g.setColor(myYellow);
g.fillRect(1315,252,40,20); // destro
//g.setColor(myBlue); g.fillRect(0, 0,350,50);
//SCRITTE POSIZIONE AUTO
g.setColor(myBlu);
g.setFont(new Font(g.getFont().getFontName(),Font.PLAIN,32) );
g.drawString("NORD",500,35); // coordinate della scritta
g.drawString("SUD",710,685); // coordinate della scritta SUD
g.drawString("OVEST",10,385); // coordinate della scritta EST
g.drawString("EST",1272,240); // coordinate della scritta OVEST
//scritte spiegazione chiusura
g.setColor(Color.black);
g.setFont(new Font(g.getFont().getFontName(),Font.PLAIN,16) );
g.drawString("Non si CHIUDE premendo la X",990,70);
g.drawString("Per CHIUDERE premi",1000,50); // coordinate della scritta PER USCIRE
g.setColor(Color.red);
g.drawString(" ESCI",1154,50);
g.setColor(Color.red);
g.fillRect(xn, yn, 20, 40); // formato rettangolo
}
public Dimension getPreferredSize() {
return new Dimension(D_W, D_H);
}
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
new Nord();
}
});
}
}
Ringrazio chi mi puà aiutare