Commençons par Java avec JShell.
Une personne qui n'a aucune expérience en programmation parvient à comprendre divers concepts qui apparaissent dans la programmation Java.
Tout d'abord, à partir des paramètres d'environnement. Téléchargez le JDK à partir d'ici. http://jdk.java.net/14/
Si vous êtes nouveau sur la ligne de commande, vous souhaiterez peut-être utiliser le package avec le programme d'installation avec AdoptOpenJDK. https://adoptopenjdk.net/?variant=openjdk14&jvmVariant=hotspot Pour les utilisateurs Mac et Linux, téléchargez tar.gz
$ tar xf openjdk-14.0.2_osx-x64_bin.tar.gz
Je pense que ça va. Sous Windows, installez zip et décompressez-le dans le dossier approprié.
Commençons JShell. Ouvrez "Invite de commandes" pour les utilisateurs Windows et "Terminal" pour les utilisateurs Mac et Linux.
$ jshell
Heureusement pour commencer
Au fait, $ jshell
est une notation que vous devez taper jshell
sur une telle ligne de commande et appuyer sur la touche [entrée].
S'il ne démarre pas, démarrez `` \ Program files \ Java \ jdk-11 \ bin \ jshell "pour Windows. Si vous entrez à propos de
\ Prog` et appuyez sur [tab], cela sera terminé.
\
comme / Library / Java / jdk-11 / Contents / Home / bin / jshell
.Entrez «12 + 23» comme essai et appuyez sur la touche [entrée]. Le résultat est "35".
Si vous entrez quelque chose dans JShell et appuyez sur la touche [Entrée], JShell interprétera cette entrée comme du code Java et l'exécutera. Cette fois, je n'ai entré qu'un calcul, mais il fera également partie du programme Java. Ainsi, le premier programme Java est «12 + 23». Tu l'as fait!
Ci-après, l'entrée de jshell et le résultat sont exprimés comme suit.
jshell> 12 + 23
$1 ==> 35
Cela signifie que vous pouvez entrer «12 + 23» dans JShell et appuyer sur la touche [Entrée], et vous verrez «35». Ignorez la partie $ 1 ==>
pour le moment.
J'ai fait l'ajout plus tôt. Alors qu'en est-il de la soustraction? Essayez «4-3».
jshell> 4 - 3
$2 ==> 1
Utilisez «*» pour la multiplication et «/» pour la division. Vous pouvez également calculer le reste de la division avec «%».
jshell> 8 * 2
$3 ==> 16
jshell> 8 / 2
$4 ==> 4
jshell> 7 % 5
$5 ==> 2
Que diriez-vous de «3 + 4 * 2»?
jshell> 3 + 4 * 2
$6 ==> 11
La multiplication est calculée en premier. Si vous mettez «3 + 4» entre parenthèses, l'addition sera calculée en premier.
jshell> (3 + 4) * 2
$7 ==> 14
Au fait, qu'en est-il du «22/7»?
jshell> 22 / 7
$8 ==> 3
Il est calculé comme un entier. Si vous voulez le résultat après la virgule décimale, c'est-à-dire si vous voulez le calculer comme un nombre réel, utilisez 22.0 / 7
.
jshell> 22.0 / 7
$9 ==> 3.142857142857143
Si vous ajoutez un point décimal, il sera traité comme un nombre réel. Si l'un des termes de l'opération est un nombre réel, le calcul est effectué sous la forme d'un nombre réel. De cette façon, Java fait la distinction entre les nombres entiers et les nombres réels.
Jusqu'à présent, nous avons traité des valeurs numériques. Les programmes traitent souvent une série de caractères tels que des mots et des phrases. Dans le monde de la programmation, une telle série de caractères est appelée une chaîne de caractères. En Java, il est placé entre «» »(guillemets doubles) pour représenter une chaîne de caractères.
jshell> "aaa"
$10 ==> "aaa"
Utilisez l'opérateur +
pour concaténer des chaînes.
jshell> "te" + "st"
$11 ==> "test"
Et la soustraction? Ce serait pratique si vous pouviez obtenir " te "
avec " test "-" st "
.
jshell> "test" - "st"
|Erreur:
|Opérateur binaire'-'Le type d'opérande de n'est pas valide
|Premier type: java.lang.String
|Deuxième type: java.lang.String
| "test" - "st"
| ^-----------^
J'ai une erreur. Ici, l'opérande est le terme de l'opérateur. Il dit que vous ne pouvez pas utiliser de chaînes dans l'opérateur -
. Ce serait bien de pouvoir lire correctement ces messages d'erreur, mais à ce stade, il est normal de reconnaître que vous ne pouvez pas utiliser de chaînes pour l'opérateur -
.
Seul l'opérateur +
peut être utilisé comme opérateur pour les chaînes.
Vous souhaiterez effectuer diverses opérations sur la chaîne de caractères. Par exemple, comptons le nombre de caractères. Essayez de taper "test" .length () . Si vous entrez jusqu'à
len` et appuyez sur la touche [Tab], vous pourrez entrer dans la suite. Ces fonctions sont dites «complémentaires».
jshell> "test".length()
$12 ==> 4
Vous avez 4 Cette «length ()» est appelée une méthode. Il existe de nombreuses méthodes de ce type pour les chaînes qui effectuent des opérations sur des chaînes. Appuyez sur la touche [Tab] sur "test" .` pour afficher une liste de méthodes qui peuvent être appelées sur la chaîne.
Méthode | Utilisation |
---|---|
length () | Récupère la longueur d'une chaîne |
répéter (n) | Répéter la chaîne n fois |
replace (ancien, nouveau) | Remplace l'ancien dans une chaîne par nouveau |
charAt (index) | Extraire le caractère d'index |
substring (begin, end) | Extraire du début à la fin de la chaîne |
toUpperCase () | chaîne majuscule |
toLowerCase () | Rendre la chaîne plus basse |
Utilisons maintenant également d'autres méthodes. Lançons " test ". Repeat (3)
.
jshell> "test".repeat(3)
$13 ==> "testtesttest"
Vous voyez une chaîne que «test» se répète 3 fois. La méthode repeat
est une méthode qui répète une chaîne de caractères un nombre spécifié de fois. Comme vous pouvez le voir, il y a des moments où vous devez spécifier quelque chose pour une méthode. La valeur spécifiée pour une telle méthode est appelée "argument".
Utilisons une autre méthode replace
. Essayez d'exécuter " test ".replace (" st "," ")
.
Avec la méthode charAt
, vous pouvez récupérer le caractère à l'emplacement spécifié.
jshell> "test".charAt(2)
$13 ==> 's'
Notez que le premier caractère est le 0e. Dans la plupart des programmes, 0 est le premier élément et 1 est le deuxième élément.
jshell> "test".replace("st","")
$14 ==> "te"
La méthode replace
est une méthode qui remplace une chaîne de caractères, et prend la chaîne de caractères avant le remplacement et la chaîne de caractères après le remplacement comme arguments. Lorsque vous prenez deux ou plusieurs arguments comme celui-ci, séparez les arguments par ,
. " "
Est appelé une chaîne vide. En remplaçant «st» par «», vous avez omis «st» dans la chaîne.
Vous pouvez également concaténer les appels de méthode.
jshell> "test".repeat(3).replace("st","")
$15 ==> "tetete"
Le "test" "est répété 3 fois pour devenir le" "test test test" ", et le" st "" est omis pour devenir le "tétete" ".
Exercice: Utilisez la méthode repeat
pour créer une chaîne qui répète" hi "
4 fois
Exercice: Utilisez la méthode replace
pour créer une chaîne qui remplace p
dans"raisin"
par d
.
Exercice: Utilisez la méthode toLowerCase
pour réduire" HELLO "
Exercice: Utilisez la méthode substring
pour créer une chaîne extraite de la première (deuxième dans une conversation quotidienne) de" minute "
.
Comme opération de base, appuyez sur la touche haut pour afficher ce que vous avez entré auparavant. Il peut être utilisé lorsque vous souhaitez réexécuter ce que vous avez entré précédemment.
Dans JShell, s'il peut être déterminé que la clé est entrée lorsque la touche [Entrée] est enfoncée, l'expression est exécutée. Cependant, si la ligne se termine à mi-chemin, par exemple lorsqu'un saut de ligne se produit au milieu ou lorsqu'il n'y a pas assez de parenthèses, il vous sera demandé de continuer la saisie comme suit.
jshell> "test".repeat(
...>
C'est bien si vous commencez une nouvelle ligne lorsque vous entrez une longue ligne, mais si vous pensez que vous avez entré une ligne mais que la ligne n'est pas terminée en raison du manque de parenthèses, il est difficile de trouver l'erreur et vous devez la saisir à nouveau. Parfois, il est tôt. Dans ce cas, vous pouvez annuler en appuyant sur [Ctrl] + [c].
Utilisez la commande / exit
pour quitter JShell.
jshell> /exit
|terminer
$
D'ailleurs, puisque cette valeur est proche du rapport de circonférence, je voudrais l'utiliser de différentes manières au lieu du rapport de circonférence. Cependant, il est difficile de saisir «22.0 / 7» un par un.
C'est donc une variable.
Les variables peuvent être définies en définissant var variable name = value
.
jshell> var pi = 22.0 / 7
pi ==> 3.142857142857143
Ceci définit une variable appelée «pi» et lui attribue la valeur «3.142857142857143». Tapez simplement pi
et vous verrez la valeur assignée.
jshell> pi
pi ==> 3.142857142857143
Utilisons ceci pour trouver la circonférence d'un cercle avec un rayon de 5. La longueur de la circonférence était le rapport diamètre x circonférence. Les variables peuvent être utilisées dans les opérations en tant que valeurs.
jshell> 5*2*pi
$16 ==> 31.428571428571427
La zone était le rayon x le rayon x la circonférence.
jshell> 5*5*pi
$17 ==> 78.57142857142857
De cette façon, nous avons pu utiliser des variables pour recycler les valeurs. Au fait, lorsque la variable pi a été définie à la position «$ 17», elle était affichée comme «pi». En d'autres termes, cela signifie que vous avez attribué «78,57142857142857» à la variable «$ 17».
jshell> $17
$17 ==> 78.57142857142857
À propos, en Java, Math.PI
contient en fait un rapport de circonférence très précis.
jshell> Math.PI
$82 ==> 3.141592653589793
C'est le champ PI
de la classe Math
, mais étudions-le en détail.
En utilisant cette valeur comme rapport de circonférence, l'aire d'un cercle avec un rayon de 5 est:
jshell> 5*5*Math.PI
$81 ==> 78.53981633974483
Affectons ce Math.PI
à la variable pi
.
jshell> pi=Math.PI
pi ==> 3.141592653589793
De cette manière, vous pouvez également réaffecter des valeurs à des variables.
Quand j'ai calculé à nouveau 5 * 5 * pi
, j'ai obtenu le même résultat que lors de l'utilisation de Math.PI
comme suit.
jshell> 5*5*pi
$84 ==> 78.53981633974483
Attribuons une chaîne de caractères à la variable pi
.
jshell> pi="circle ratio"
|Erreur:
|Type incompatible: java.lang.Impossible de convertir la chaîne en double:
| pi="circle ratio"
| ^------------^
J'ai une erreur. On vous dit que «la chaîne ne peut pas être convertie en double».
Les variables Java déterminent le type de valeur à laquelle la variable peut être attribuée. Un tel type de valeur est appelé un «type». En d'autres termes, les variables sont de type fixe.
Vérifions maintenant le type de la variable. Dans JShell, vous pouvez vérifier le type d'une variable avec la commande / var
.
jshell> /var pi
| double pi = 3.141592653589793
Cela signifie que la variable «pi» est de type «double» et reçoit la valeur «3.141592653589793». double
est le type qui gère les nombres réels.
Regardons le cas des chaînes. Tout d'abord, préparez la variable str
à laquelle la chaîne de caractères`" cercle "ʻ est assignée.
jshell> var str="circle"
str ==> "circle"
Vérifions le type avec la commande / var
.
jshell> /var str
| String str = "circle"
Il a un type de «String». La chaîne de caractères est représentée par le type «String». Tenter d'attribuer un nombre réel entraînera une erreur.
jshell> str=3.14
|Erreur:
|Type incompatible:double java.lang.Impossible de convertir en chaîne:
| str=3.14
| ^--
Jusqu'à présent, nous avons préparé des variables en utilisant var
. Si vous utilisez var
, le type de variable sera décidé automatiquement. Ici, vous pouvez également spécifier un type
pour préparer une variable.
jshell> String message="hello"
message ==> "hello"
Vous pouvez également appeler des méthodes sur de telles variables.
jshell> message.length()
$325 ==> 5
Les méthodes qui peuvent être appelées sont déterminées par le type. La méthode «length» et la méthode «repeat» sont des méthodes préparées pour le type «String». Aucune méthode ne peut être appelée pour le type «double».
Vous pouvez également affecter la valeur renvoyée par la méthode à une variable.
jshell> var count=message.length()
count ==> 5
Ici, la variable «count» est de type «int».
jshell> /var count
| int count = 5
Le type ʻint` est un type qui gère les entiers.
Exercice: Utilisons «var» pour préparer une variable «root2» avec un nombre réel «1.414».
Exercice: Au lieu d'utiliser var
, préparons un mot variable
auquel la chaîne" apple "est assignée.
Exercice: Appelons la méthode toUpperCase
sur le mot
préparé ci-dessus.
J'ai pu utiliser des variables pour recycler les valeurs, mais ce serait bien de pouvoir recycler des expressions telles que rayon x rayon x circonférence. En Java, vous pouvez réutiliser des expressions en définissant des méthodes.
C'est un peu long, mais essayez d'exécuter double menseki (double r) {return r * r * pi;}
.
jshell> double menseki(double r){return r*r*pi;}
|Créé le suivant:Méthode Menseki(double)
La méthode menseki
est maintenant définie. Vous pouvez l'utiliser comme suit.
jshell> menseki(5)
$34 ==> 78.53981633974483
jshell> menseki(3)
$33 ==> 28.274333882308138
Vous pouvez maintenant réutiliser la formule.
Examinons de plus près la définition de la méthode. Si vous cassez la définition de méthode de manière appropriée, ce sera comme suit.
double menseki(double r) {
return r*r*pi;
}
La définition est la suivante:
Nom de la méthode de type de résultat(Type d'argument Variable qui gère les arguments) {
expression de retour;
}
Le type est le type de valeur, et dans ceux qui sont apparus jusqu'à présent, l'entier est ʻint, le nombre réel est
double et la chaîne de caractères est
String. Cette fois, nous avons défini une méthode nommée
mensekiqui prend un nombre réel et le renvoie. J'essaye de recevoir l'argument reçu avec
r. Le r de rayon. Utilisez l'instruction
return` pour renvoyer une valeur. Ici, le rayon reçu est multiplié deux fois et multiplié par le rapport de circonférence est renvoyé.
Vous pouvez également le définir avec un saut de ligne dans JShell comme suit:
jshell> double menseki(double r) {
...> return r*r*pi;
...> }
|Changé ce qui suit:Méthode Menseki(double)
Exercice: Le nom de l'argument ne doit pas nécessairement être «r». En tant que menseki2, essayez de définir une méthode avec la même fonction afin que l'argument soit reçu par un. Exercice: essayez de définir une méthode qui prend un rayon et renvoie la longueur de la circonférence.
Swing
N'était-ce pas ennuyeux avec juste des lettres? Alors faisons quelque chose qui ne soit pas que des lettres. Afficher une fenêtre. En Java, un toolkit GUI appelé Swing est fourni en standard. Une boîte à outils GUI est un ensemble d'éléments qui affichent des fenêtres et organisent des boutons.
Préparez d'abord une fenêtre.
jshell> var f = new javax.swing.JFrame("test")
f ==> javax.swing.JFrame[fram ... bled=true]
Je ne suis pas sûr, mais quelque chose a été attribué à la variable f.
En réponse, essayez d'appeler la méthode show ()
.
jshell> f.show()
Quelque chose était affiché dans le coin supérieur gauche.
C'est petit, alors essayez d'augmenter la taille. Utilisez la méthode setSize
pour déterminer la taille. Ici, spécifiez la taille horizontale et la taille verticale.
jshell> f.setSize(400,300)
J'ai grandi!
Lors de la préparation d'une fenêtre
var f = new javax.swing.JFrame("test")
A été exécuté.
En Java, les objets gérés par des programmes tels que les fenêtres et les boutons sont préparés comme des "objets". Ici, la variable «f» reçoit un objet window. Dans Swing, les fenêtres sont représentées par le type «javax.swing.JFrame». Les objets sont créés en fonction d'un type. Le type sur lequel un objet est basé est appelé une "classe". javax.swing.JFrame
est une classe.
Lors de la création d'un objet à partir d'une classe, utilisez l'opérateur new
pour le créer en tant quenouvelle classe (argument)
. Les arguments sont déterminés par la classe.
De certains points de vue, il semble que vous appeliez une méthode spéciale avec l'opérateur new
lorsque vous créez un objet. Lorsqu'elle est vue de cette façon, cette méthode est appelée un "constructeur". Un constructeur est une méthode qui porte le même nom qu'une classe et qui nécessite l'appel de l'opérateur new
.
JavaDoc
La documentation de ce javax.swing.JFrame
peut être trouvée ici.
https://download.java.net/java/early_access/jdk11/docs/api/java.desktop/javax/swing/JFrame.html
C'est Anglais. Si vous aimez le japonais, la version est ancienne, mais ici. https://docs.oracle.com/javase/jp/10/docs/api/javax/swing/JFrame.html
Le format de ce document est appelé "JavaDoc". La documentation de l'API Java est généralement dans ce format.
Si vous utilisez le nom de classe javadoc + tel que "javadoc JFrame", JavaDoc sortira.
Par exemple, le constructeur utilisé cette fois a l'explication suivante.
Si vous regardez ceci, vous pouvez voir que nous avons utilisé un constructeur appelé JFrame (String title)
. Nous avons également un constructeur sans argument, vous pouvez donc voir que vous pouvez créer une fenêtre sans spécifier de titre.
Vous ne le savez peut-être pas sans étudier un peu plus le langage Java, mais vérifier le JavaDoc peut vous aider à comprendre ce que vous faisiez.
De plus, en général, tout n'est pas expliqué dans le manuel, il est donc important de se référer à ces informations primaires et de les saisir avec précision.
Exercice: Examinons la méthode de remplacement de chaîne utilisée jusqu'à présent avec JavaDoc. Conseil: il est pratique de rechercher dans le champ de recherche en haut à droite.
Maintenant que la fenêtre est visible, plaçons la zone de texte. La zone de texte est une partie dans laquelle vous pouvez saisir une chaîne de caractères sur plusieurs lignes. Dans Swing, la zone de texte est gérée par la classe javax.swing.JTextArea
. Les pièces ainsi placées dans la fenêtre sont appelées "composants".
Pour placer la zone de texte, vous devez d'abord créer un objet pour la zone de texte. Pour créer un objet, vous avez appelé une méthode avec le même nom que le nom de la classe, c'est-à-dire le constructeur avec l'opérateur new
. Cependant, javax.swing.JTextArea
est long et fastidieux à saisir.
En fait, javax.swing.JTextArea
est divisé en deux parties, seul le dernier délimiteur est le nom de la classe, et avant cela, c'est le nom du package. En d'autres termes, il représente la classe JTextArea
du package javax.swing
. Un "package" est un mécanisme de classification des classes Java.
Par conséquent, vous pouvez omettre le nom du package en utilisant l'instruction ʻimport. ʻImport javax.swing. *
Permet aux classes du package javax.swing
d'être représentées par le nom de la classe seul, en omettant le nom du package.
jshell> import javax.swing.*
Je l'ai ignoré jusqu'à présent, mais parfois le type String
était affiché comme java.lang.String
. Le type String
était inclus dans le package java.lang
, et le package java.lang
pouvait omettre le nom du package car ʻimport` avait été effectué à l'avance.
Créons maintenant un objet de la classe JTextArea
qui représente la zone de texte.
jshell> var textarea = new JTextArea()
textarea ==> javax.swing.JTextArea[,0,0,0x0,i ... rap=false]
Vous devez le placer dans la fenêtre. Vous pouvez l'ajouter à une fenêtre en appelant la méthode ʻadd sur l'objet
JFrame` qui représente la fenêtre.
jshell> f.add(textarea)
$14 ==> javax.swing.JTextArea[,0,0,0x0,inval ... se,wrap=false]
Cependant, il ne sera pas affiché dans la fenêtre tel quel, vous devez donc réorganiser la fenêtre. Redimensionner la fenêtre la réorganisera, essayez donc de faire glisser le bord de la fenêtre pour la redimensionner ou appelez la méthode setSize
. Si la taille de la fenêtre n'est pas modifiée lorsque vous spécifiez la taille avec la méthode setSize
, rien ne se passe, vous devez donc changer un peu la taille.
jshell> f.setSize(400,301)
Une zone de texte s'affiche et vous pouvez saisir des caractères.
Vous pouvez ajouter une chaîne à la zone de texte avec la méthode append.
jshell> textarea.append("te")
jshell> textarea.append("st")
Cependant, s'il est laissé tel quel, il sera ajouté en continu sans se casser.
Les sauts de ligne sont représentés par «\ n». (Pour Windows, c'est \ n
)
jshell> textarea.append("\ntester\n")
Les sauts de ligne ont été faits correctement.
Ajoutons maintenant un bouton. Dans Swing, les boutons sont gérés par la classe JButton
. Vous pouvez spécifier la chaîne d'étiquette de bouton comme argument du constructeur.
jshell> var button = new JButton("Hello")
button ==> javax.swing.JButton[,0,0,0x0,inval...pable=true]
Je veux ajouter ceci à la fenêtre, mais j'ai déjà la zone de texte en place, donc je dois l'ajouter là où elle ne se chevauche pas. Dans JFrame, les composants sont placés en spécifiant le nord, le sud, l'est, l'ouest et le centre.
ʻSpécifiez l'emplacement à placer dans le premier argument de la méthode add` et le composant à placer dans le deuxième argument.
jshell> f.add("North", button)
$27 ==> javax.swing.JButton[,0,0,0x0,inval...ltCapable=true]
Si vous avez mal orthographié «Nord», vous obtiendrez une erreur comme celle-ci. Veuillez noter qu'il est également sensible à la casse.
jshell> f.add("Nort", button)
| Exception java.lang.IllegalArgumentException: cannot add to layout: unknown constraint: Nort
| at BorderLayout.addLayoutComponent (BorderLayout.java:468)
| at BorderLayout.addLayoutComponent (BorderLayout.java:429)
| at JRootPane$1.addLayoutComponent (JRootPane.java:507)
| at Container.addImpl (Container.java:1151)
| at Container.add (Container.java:1028)
| at JFrame.addImpl (JFrame.java:553)
| at Container.add (Container.java:459)
| at (#31:1)
À propos, cette erreur est différente de celle où j'ai essayé d'attribuer une chaîne à la variable pi il y a longtemps. C'est aussi différent de quand vous avez mal orthographié ʻadd`.
jshell> f.ad("North", b)
|Erreur:
|Impossible de trouver le symbole
|symbole:Annonce de méthode(java.lang.String,javax.swing.JButton)
|endroit:Tapez javax.swing.Variable JFrame f
| f.ad("North", b)
| ^--^
Ces erreurs se produisent à des moments différents, l'erreur lors de la tentative d'attribution d'une chaîne de caractères à ajouter ou la variable pi est l'erreur lors de l'interprétation du programme, l'erreur lorsque "North" se trompe est le traitement interprété Il s'agit d'une erreur lors de l'exécution. Une erreur lors de l'interprétation d'un programme est appelée une erreur de compilation et une erreur lors de l'exécution est appelée une exception. Maintenant, il est difficile de faire la différence car les deux se produisent lorsque vous tapez une commande et appuyez sur Entrée, mais vous le verrez clairement pendant le développement réel. Pour le moment, ce n'est pas grave si vous pensez qu'il existe deux types d'erreurs.
Eh bien, même si l'ajout réussit, le bouton n'est pas encore affiché.
Si vous reconstruisez la fenêtre avec la méthode setSize
, le bouton apparaîtra.
jshell> f.setSize(400,300)
Mais lorsque j'appuie sur ce bouton, rien ne se passe. J'ai besoin d'écrire un traitement. Essayez de taper: ʻAddActionListener est un peu long, mais si vous tapez jusqu'à ʻaddAc
et appuyez sur la touche [tab], le reste devrait être terminé.
jshell> button.addActionListener(ae -> textarea.append("Hello!\n"))
Vous devriez maintenant voir "Bonjour" lorsque vous appuyez sur le bouton.
Utilisez la méthode ʻaddActionListener pour ajouter un traitement lorsque le bouton est enfoncé. Ici, ʻae-> textarea.append ("Hello! \ N") ʻest spécifié comme argument. J'ai dû passer un certain traitement à la méthode addActionListener
avec le sentiment "Veuillez appeler ce traitement lorsque le bouton est enfoncé". Le traitement ici est textarea.append (" Hello! \ N ")
, mais vous devez utiliser "expression lambda" etc. pour passer le traitement en tant que valeur.
L'expression lambda s'écrit comme suit.
argument->En traitement
Dans le cas du traitement lorsque le bouton est enfoncé, ʻAe est utilisé ici car il reçoit l'objet ʻActionEvent
comme argument, mais tout va bien tant qu'il est facile à comprendre. L'argument reçu n'est pas utilisé cette fois.
Faisons de notre mieux.
Essayons d'afficher la chaîne de caractères saisie dans le champ de texte lorsque le bouton est enfoncé.
Je voudrais ajouter un champ de texte et un bouton, mais je ne peux pas l'ajouter tel quel avec la méthode de mise en page JFrame. Nous utilisons donc le composant JPanel
.
jshell> var panel = new JPanel()
jshell> f.add("South", panel)
Le composant JPanel
a une disposition dans laquelle les composants sont disposés dans l'ordre à partir de la gauche, et si vous placez divers composants ici et que vous les ajoutez ensuite à la fenêtre JFrame
, cela aura l'air bien. J'ai décidé de l'ajouter à la position «Sud» ici.
Lorsque je change la taille de la fenêtre, quelque chose s'affiche un peu.
Ajoutez un champ de texte. Le champ de texte est un composant d'entrée sur une ligne et utilise le composant JTextField
.
jshell> var textfield = new JTextField()
jshell> textfield.setColumns(15)
jshell> panel.add(textfield)
La largeur est déterminée par la méthode setColumns
.
Ajoutons un bouton à la fin.
jshell> var printButton = new JButton("Print")
jshell> printButton.addActionListener(ae -> textarea.append(textfield.getText() + "\n"))
jshell> panel.add(printButton)
Lorsque vous appuyez sur le bouton, la chaîne de caractères saisie dans le champ de texte est ajoutée à la zone de texte.
Exercice: Ajoutons un bouton à afficher dans la zone de texte avec «Ouais!».
Exercice: Ajoutons un bouton qui met en majuscule l'alphabet de la chaîne de caractères saisie dans le champ de texte et l'affiche dans la zone de texte. Pour mettre en majuscule l'alphabet dans la chaîne, utilisez la méthode toUpperCase
. Tout d'abord, essayons d'utiliser la méthode toUpperCase
sur JShell.
Enfin, écrivons ce que nous avons essayé avec JShell en tant que programme Java indépendant.
Entrez le code source suivant dans le Bloc-notes ou Text Edit et enregistrez-le sur votre bureau en tant que FirstWindow.java
.
FirstWindow.java
import javax.swing.*;
public class FirstWindow {
public static void main(String... args) {
var frame = new JFrame("test");
var textarea = new JTextArea();
frame.add(textarea);
var textfield = new JTextField();
textfield.setColumns(15);
var button = new JButton("Print");
button.addActionListener(ae -> textarea.append(textfield.getText() + "\n"));
var panel = new JPanel();
panel.add(textfield);
panel.add(button);
frame.add("North", panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.show();
}
}
Divers éléments qui n'apparaissaient pas dans JShell ont été ajoutés. De plus, les commandes entrées dans JShell ont ;
(point-virgule). Cependant, par rapport à avant de commencer ce tutoriel, je pense que c'est comme "je peux le lire, je peux le lire!"
Maintenant, déplaçons ce code source.
Ouvrez une invite de commande. Je n'utiliserai pas JShell cette fois.
Utilisez la commande cd
pour accéder au bureau.
$ cd Desktop
Ensuite, compilez le code source que vous venez de saisir avec la commande javac
.
$ javac FirstWindow.java
Si une erreur se produit, corrigez-la, enregistrez-la, puis compilez-la à nouveau.
Lorsque l'erreur disparaît, vérifions le fichier créé.
Utilisez la commande dir
sous Windows et la commande ls
sous Mac et Linux.
$ dir FirstWindow.*
Vous avez maintenant un fichier FirstWindow.class
. Voici le code exécutable Java. Utilisez la commande java
pour ce faire.
$ java FirstWindow
Avez-vous vu une fenêtre? S'il est affiché, il réussit.
Commencez votre étude à grande échelle de Java à partir d'ici.
Recommended Posts