Java – die neusten Beiträge

[JavaFX] Spinner so einstellen, dass er nicht leer bleiben darf?

Wenn ich einen IntegerSpinner leer lasse und das Feld verlasse, bekomme ich eine NullPointerException, da logischer Weise nichts im Spinner steht.

Ich möchte den Spinner so einstellen, dass er mindestens eine Zahl beinhalten muss und maximal zweistellig sein darf. Ich meine damit nicht den Mindest- oder Maximalwert. Beispiel:

""    - leer;                 so ists falsch
"1"   - nicht leer;           so ists richtig
"11"  - nicht leer;           so ists richtig
"111" - mehr als zwei Zahlen; so ists falsch

Ich hatte schon mal sehr lange dieses Problem.

Nun möchte ich entweder auch eine eigene Fehlermeldung für diese NullPointerException haben (um z. B. .requestFocus() zu machen) oder einfach die Eingaben blockieren, wenn es, wie oben beschrieben, falsch gemacht wurde.

Mit regex kann ich schon mal einstellen, dass der Spinner eine rote Farbe bekommt (als Hinweis), wenn ein non-Integer eingegeben wurde oder zu wenige bzw. zu viele Zahlen eingegeben wurden:

if (!options_Spinner_StartInterval_seconds.getEditor().getText().matches("^-?\\d+$") || !options_Spinner_StartInterval_seconds.getEditor().getText().matches("^-?\\d.{0,2}$"))
    options_Spinner_StartInterval_seconds.setStyle("-fx-focus-color: #f00;");

Wenn ich aber die Anzahl der Zahlen im Spinner überprüfe, kann ich kein

spinner.requestFocus();

machen - ich kann den Spinner trotzdem verlassen.

Computer, programmieren, Java, JavaFX, Regulärer Ausdruck

Android App löscht Session automatisch bei onDestroy?

Ich habe eine App, wo man sich anmelden muss.

Die SessionID wird in der Login Activity empfangen und gespeichert. Wenn ich auf einer anderen Activity bin, hole ich die SessionID aus den ShaPref und hänge sie an den Header. Dann erhalte ich einen Response. Alles funktioniert einwandfrei.

Aber sobald ich die App schließe und den Login überspringe, dann wird ja die SessionID wieder aus den ShaPref geholt und an den Header gehängt.

Die SessionID ist weiterhin vorhanden! Dies prüfe ich anhand des Toast und Logs.

Aber ich erhalte den Response, dass ich ausgeloggt sei. Und die Session ist komplett leer.

Meine Vermutung ist:

Das die SessionID nur der Ort ist, wo die Datei mit den Werten gespeichert ist. Also das ich die SessionID an den Header hänge und dann weiß die Seite, welche Datei benutzt werden soll. Aber wenn man aus der App herausgeht, löscht Android automatisch diese Datei. Doch die SessionID-Adresse bleibt bestehen.

Fragen:

  • Wie kann ich die App schließen, ohne dass Android die Datei löscht?
  • Wo wird die Session auf dem Handy gespeichert? Ich kann es ja am PC einsehen.
  • Wie kann ich verhindern, dass Androids onDestroy etc. die Datei löscht?

Und wie kann ich dafür sorgen, dass Android bei onDestroy etc. die Datei löscht?

Wenn ich angemeldet sein möchte und ich herausgehe und wieder rein, bleibt die SessionID. Aber auf der Webseite ist sie leer. Aber wenn ich nicht angemeldet sein möchte, dann wird die ShaPref gelöscht und dann soll auch die Datei gelöscht werden.

Ich hoffe, ihr habt eine Lösung, wie man die automatische Löschung von dieser Datei bei Verlassen der App verhindert.

Ich danke euch im Voraus.

App, programmieren, Java, Android, session, Speicherort, Android Studio

Spigot Tablist wird nicht richtig gesetzt?

Ich habe langsam keine Ahnung mehr was ich noch tun soll.

package game.squid.utils;

import org.bukkit.Bukkit;

import org.bukkit.ChatColor;

import org.bukkit.entity.Player;

import org.bukkit.scoreboard.Scoreboard;

import squid.game.games.BlockGame;

public class ScoreboardManager{

public static void registerScoreboard(Player p) {

for(Player all : Bukkit.getOnlinePlayers()) {

Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard();

all.sendMessage("Debug1");

org.bukkit.scoreboard.Team teamBlue = board.registerNewTeam("TeamBlue");

org.bukkit.scoreboard.Team teamRed = board.registerNewTeam("TeamRed");

org.bukkit.scoreboard.Team teamYellow = board.registerNewTeam("TeamYellow");

org.bukkit.scoreboard.Team teamGreen = board.registerNewTeam("TeamGreen");

all.sendMessage("Debug3");

teamBlue.setPrefix(ChatColor.AQUA.toString() + "§bBLUE ");

teamRed.setPrefix(ChatColor.RED.toString() + "§cRED ");

teamYellow.setPrefix(ChatColor.YELLOW.toString() + "§eYELLOW ");

teamGreen.setPrefix(ChatColor.GREEN.toString() + "§aGREEN ");

all.sendMessage("Debug4");

all.setScoreboard(board);

if(Team.getTeam(p) == BlockGame.blueTeam) {

teamBlue.addEntry(p.getName());

all.sendMessage("Debug5");

continue;

}

if(Team.getTeam(p) == BlockGame.redTeam) {

teamRed.addEntry(p.getName());

all.sendMessage("Debug6");

continue;

if(Team.getTeam(p) == BlockGame.yellowTeam) {

teamYellow.addEntry(p.getName());

all.sendMessage("Debug7");

continue;

}

if(Team.getTeam(p) == BlockGame.greenTeam) {

teamGreen.addEntry(p.getName());

all.sendMessage("Debug8");

continue;

}

}

}

}

Bild zum Beitrag
programmieren, Java, Minecraft, Minecraft Server, Plug-in, Spigot

Meistgelesene Beiträge zum Thema Java