ProgettoEclipse: EsempioJList.zip
Modificare l’ultima versione della Biblioteca in maniera che funzioni con la JList.
ProgettoEclipse: EsempioJList.zip
Modificare l’ultima versione della Biblioteca in maniera che funzioni con la JList.
Progetto Eclipse: Biblioteca-Vers3
Progetto aggiornato alla lezione del 3 febbraio 2017. Studiare il progetto prestando attenzione ai metodi di lettura e scrittura degli oggetti Libro sul file Biblioteca.dat; il compito da svolgere è sul quaderno elettronico.
Progetto Eclipse: Biblioteca-Vers2
Progetto aggiornato alla lezione del 30 gennaio 2017. Studiare il progetto prestando attenzione all’utilizzo della classe ArrayList in associazione con i generics. Studiare la struttura della finestra di dialogo modale JInputLibro per l’input dei dati.
Progetto Eclipse: Biblioteca-Vers1
Prima versione del progetto Biblioteca senza l’utilizzo dei generics e mediante la classe Vector; l’input dei dati avviene mediante una sequenza di richieste di un dato alla volta.
File di esempio sull’utilizzo dei generics: Il tipo Generics in Java.pdf
File aggiornato al 22/01/2017 – Progetto Eclipse: RubricaTelefonica.zip
Come esempio di programma in preparazione alla verifica di venerdì 27 gennaio 2017, realizzare un’applicazione che permetta di gestire una biblioteca; la classe Libro dovrà avere i seguenti attributi: autore, titolo, editore, pagine, prezzo, codiceISBN.
Vedi anche: https://liceocuneo.it/oddenino/informatica/java/stream/
Sviluppare il programma presente in questo link:
https://liceocuneo.it/oddenino/esercizi-di-informatica-per-la-4e/
Classe JSemaforo realizzata in classe:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JComponent;
public class JSemaforo extends JComponent {
public final int ROSSO = 0, VERDE = 1, GIALLO = 2;
private boolean acceso = false;
private int stato = ROSSO;
public JSemaforo() {
this.setPreferredSize(new Dimension(50, 150));
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.GRAY);
g.fillRoundRect(0, 0, 50, 150, 10, 10);
if (acceso) {
switch (stato) {
case ROSSO:
g.setColor(Color.RED);
g.fillOval(5, 5, 40, 40);
break;
case VERDE:
g.setColor(Color.GREEN);
g.fillOval(5, 105, 40, 40);
break;
case GIALLO:
g.setColor(Color.YELLOW);
g.fillOval(5, 55, 40, 40);
break;
}
} else {
g.setColor(Color.YELLOW);
g.fillOval(5, 55, 40, 40);
}
}
public void successivo() {
stato++;
if (stato > GIALLO)
stato = ROSSO;
repaint();
}
public int getStato() {
return stato;
}
public void setStato(int stato) {
this.stato = stato;
}
public boolean isAcceso() {
return acceso;
}
public void setAcceso(boolean acceso) {
this.acceso = acceso;
}
}
Creare JDati (sottoclasse di JOxy) che permetta l’inserimento e la memorizzazione di un insieme di punti sul piano cartesiano: cliccando con il mouse in un punto, la coppia di coordinare reali deve essere memorizzata in un array e visualizzata sul grafico. Sul grafico i punti inseriti devono essere rappresentati da un quadratino con a fianco le coordinate reali e i punti devono essere uniti tra di loro. Vedi figura a destra (clicca per ingrandire).
Facoltativo: cliccando su un punto già inserito, il punto deve sparire dal grafico e le linee devono aggiornarsi di conseguenza.
Realizzare un programma Java con layout BorderLayout avente sulla finestra principale nel centro un oggetto simile a JFunzioni e in alto un pannello con la possibilità di inserire un polinomio di 5 grado (al massimo). I coefficienti del polinomio devono potersi inserire in 6 caselle di testo intervallate dalle label ” x5 + “, “x4 + “, “x3 + “, “x2 + “, “x + “; deve essere presente sulla destra un bottone “Inserisci” che inserisce nell’array della classe suddetta il polinomio in quel momento presente e lo visualizza con un colore scelto a caso.
Progetto Eclipse aggiornato a venerdì 02/12/2016: Grafica.zip
Progetto Eclipse: grafica.zip
Studiare il progetto in dettaglio e inserire altre funzioni sullo stesso grafico:
y = -2 x^2 + x – 3
y = x^3 – x
y = cos x
y = log x
y = rad.quad(16 – x^2)
NB Negli ultimi 2 casi è necessario apportare le dovute modifiche al metodo paintComponent di JFunzioni per controllare le eccezioni che possono presentarsi nel calcolo di f(x).
Creare JRetta sottoclasse di JOxy avente i due attributi “m” e “q” che disegna all’interno di un sistema di riferimento il grafico della retta in forma esplicita.
package it.liceocuneo.math;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.io.Serializable;
import javax.swing.JPanel;
public class JOxy extends JPanel implements Serializable {
private String titleX = "X", titleY = "Y";
private int scaleX = 40, scaleY = 40;
private int traslX = 10, traslY = 10;
public JOxy() {
this.setPreferredSize(new Dimension(200, 200));
this.setBackground(Color.WHITE);
}
public int xg(double xr) {
return (int) Math.round(this.getWidth() * traslX / 100 + xr * scaleX);
}
public int yg(double yr) {
return (int) Math.round(this.getHeight() * (100 - traslY) / 100 - yr * scaleY);
}
public double xr(int xg) {
return (xg - this.getWidth() * traslX / 100) / (double) scaleX;
}
public double yr(int yg) {
return (this.getHeight() * (100 - traslY) / 100 - yg) / (double) scaleY;
}
public double getMinX() {
return xr(0);
}
public double getMaxX() {
return xr(this.getWidth());
}
public double getMinY() {
return yr(this.getHeight());
}
public double getMaxY() {
return yr(0);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
int w = this.getWidth(), h = this.getHeight();
// asse X
g.drawLine(0, yg(0), w, yg(0));
for (int i = (int) getMinX(); i <= (int) getMaxX(); i++) {
g.drawLine(xg(i), yg(0) - 5, xg(i), yg(0) + 5);
g.drawString(i + "", xg(i) - g.getFontMetrics().stringWidth(i + "") / 2, yg(0) + 5 + g.getFontMetrics().getAscent());
}
g.drawString(titleX, w - 5 - g.getFontMetrics().stringWidth(titleX), yg(0) - 10);
// asse Y
g.drawLine(xg(0), 0, xg(0), h);
for (int i = (int) getMinY(); i <= (int) getMaxY(); i++) {
g.drawLine(xg(0) - 5, yg(i), xg(0) + 5, yg(i));
g.drawString(i + "", xg(0) - 7 - g.getFontMetrics().stringWidth(i + ""), yg(i) - 1 + g.getFontMetrics().getAscent() / 2);
}
g.drawString(titleY, xg(0) + 10, 15);
}
public String getTitleX() {
return titleX;
}
public void setTitleX(String titleX) {
this.titleX = titleX;
}
public String getTitleY() {
return titleY;
}
public void setTitleY(String titleY) {
this.titleY = titleY;
}
public int getScaleX() {
return scaleX;
}
public void setScaleX(int scaleX) {
if (scaleX >= 20)
this.scaleX = scaleX;
}
public int getScaleY() {
return scaleY;
}
public void setScaleY(int scaleY) {
if (scaleY >= 20)
this.scaleY = scaleY;
}
public int getTraslX() {
return traslX;
}
public void setTraslX(int traslX) {
this.traslX = traslX;
}
public int getTraslY() {
return traslY;
}
public void setTraslY(int traslY) {
this.traslY = traslY;
}
}
Progetto Eclipse: UFO.zip
Creare un semplice programma con pannello JPrato (verde) che possa contenere vari oggetti JFiore (tipo margherita). Le margherite vengono inserite con il click del mouse. In JPrato deve esserci una JLabel in alto a sinistra che tenga il conteggio delle margherite presenti. Cliccando con il mouse su una margherita deve diventare invisibile.