Oppure

Loading
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