Omet navegació

5.2 CS: Utilització des de IntelliJ

Exemple

Practicarem tot el que ve a continuació sobre un programa gràfic. Serà molt més senzill que en els casos anteriors, ja que de moment només volem un lloc on tenir el nom de la imatge que volem baixar, i un lloc on visualitzar la imatge

Aquest és el seu esquelet. Guardeu-lo en un fitxer anomenat Exemple_7_5_1_FirebaseCS_AgafarImatge.kt:

import javax.swing.JFrame
import java.awt.EventQueue
import javax.swing.JTextField
import javax.swing.JButton
import javax.swing.JLabel
import java.awt.BorderLayout
import javax.swing.JPanel
import java.awt.FlowLayout
import java.io.FileInputStream
import com.google.firebase.FirebaseOptions
import com.google.auth.oauth2.GoogleCredentials
import com.google.firebase.FirebaseApp
import com.google.cloud.storage.Bucket
import com.google.firebase.cloud.StorageClient
import java.nio.file.Paths
import java.awt.image.BufferedImage
import javax.imageio.ImageIO
import java.io.IOException
import java.nio.ByteBuffer
import java.io.ByteArrayInputStream
import javax.swing.ImageIcon
import java.io.File

class AgafarImatge_1 : JFrame() {
	val nomIm = JTextField(25)
	val boto = JButton("Agafar")

	val foto = JLabel()
	var bucket: Bucket? = null

	init {
		defaultCloseOperation = JFrame.EXIT_ON_CLOSE
		setBounds(100, 100, 900, 600)
		setLayout(BorderLayout())

		val panell1 = JPanel(FlowLayout())
		panell1.add(nomIm)
		panell1.add(boto)
		getContentPane().add(panell1, BorderLayout.NORTH)

		getContentPane().add(foto, BorderLayout.CENTER)

		boto.addActionListener { agafar() }


	}

	fun agafar() {
		// Instruccions per agafar la imatge
 
	}

}

fun main(args: Array<String>) {
	EventQueue.invokeLater {
		AgafarImatge_1().isVisible = true
	}
}