package exercicio3_7; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Stroke; import java.awt.geom.Rectangle2D; import javax.swing.JApplet; import javax.swing.JFrame; import javax.swing.JPanel; public class Exercicio3_7 extends JApplet { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setTitle("Exercicio3_7"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JApplet applet = new Exercicio3_7(); applet.init(); frame.getContentPane().add(applet); frame.pack(); frame.setVisible(true); } public void init() { JPanel panel = new Exercicio3_7Panel(); getContentPane().add(panel); } } class Exercicio3_7Panel extends JPanel { public Exercicio3_7Panel() { setPreferredSize(new Dimension(400, 400)); } public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; Rectangle2D rect = new Rectangle2D.Double(70, 100, 250, 150); GradientPaint fundo = new GradientPaint(100,50,Color.blue,100,300,Color.white); g2.setPaint(fundo); g2.fill(rect); g2.setColor(Color.gray); g2.drawLine(70, 100, 70 , 255); g2.drawLine(65, 250,320,250); g2.drawLine(132, 250, 132, 255); g2.drawLine(195, 250, 195, 255); g2.drawLine(258, 250, 258, 255); g2.drawLine(320, 250, 320, 255); g2.drawLine(65, 100, 70, 100); g2.drawLine(65, 130, 70, 130); g2.drawLine(65, 160, 70, 160); g2.drawLine(65, 190, 70, 190); g2.drawLine(65, 220, 70, 220); float[] dashArray = {3, 3, 3, 3}; float dashPhase = 0; Stroke stronke= new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, dashArray, dashPhase); g2.setStroke(stronke); g2.drawLine(65, 100, 320, 100); g2.drawLine(65, 130, 320, 130); g2.drawLine(65, 160, 320, 160); g2.drawLine(65, 190, 320, 190); g2.drawLine(65, 220, 320, 220); g2.setColor(Color.black); g2.setFont(new Font("Arial", Font.BOLD, 10)); g2.drawString("Trim1", 85, 270); g2.drawString("Trim2", 150, 270); g2.drawString("Trim3", 210, 270); g2.drawString("Trim4", 270, 270); g2.drawString("500", 40, 105); g2.drawString("400", 40, 135); g2.drawString("300", 40, 165); g2.drawString("200", 40, 195); g2.drawString("100", 40, 225); g2.drawString("0", 55, 255); g2.setColor(Color.blue); g2.setFont(new Font("Verdana", Font.BOLD, 18)); g2.drawString("Consumo do Ano", 100, 75); g2.setFont(new Font("Serif", Font.BOLD, 16)); g2.drawString("Trimestres", 150, 300); g2.rotate(-Math.toRadians(90)); g2.drawString("Euros", -190, 25); g2.rotate(Math.toRadians(90)); g2.setFont(new Font("Arial", Font.ITALIC, 12)); g2.setColor(Color.GREEN); g2.fillRect(325, 145, 30, 7); float[] dashPhase1 = {5, 5, 5, 5}; float dashArray1 = 0; Stroke stronke1 = new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, dashPhase1 , dashArray1); g2.setStroke(stronke1); g2.setColor(Color.RED); g2.drawLine(325, 170, 355, 170); g2.fillRect(332, 165, 10, 10); g2.setColor(Color.BLACK); g2.drawString("Luz", 360, 150); g2.drawString("Ągua", 357, 175); g2.setColor(Color.GREEN); g2.fillRect(80,190,40,60); g2.fillRect(145,150,40,100); g2.fillRect(205,110,40,140); g2.fillRect(270,125,40,125); g2.setColor(Color.red); g2.fillRect(95,205,10,10); g2.fillRect(160,185,10,10); g2.fillRect(220,170,10,10); g2.fillRect(285,215,10,10); float[] dashPhase2 = {5, 5, 5, 5}; float dashArray2 = 0; Stroke stronke2 = new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, dashPhase2, dashArray2); g2.setStroke(stronke2); g2.drawLine(95,210,160,190); g2.drawLine(160,190,220,175); g2.drawLine(220,175,285,220); } }