Eclipse – die neusten Beiträge

Java, textdokument in zweidimensionalen Array speichern und ausgeben?

Hey, bei meiner dieswöchigen Informatik Übung müssen wir ein Spielfeld aus einem Textdokument in ein Zweidimensionales Array einlesen und ausgeben.

Ein Textdokument sieht zB so aus:

https://pastebin.com/5CViAyG5

Ich hätte die Aufgabe mit folgendem Code gelöst:

[CODE]

class Input {

public static void main(String[] args) {

Input x = new Input();

x.openup("MazeWithExit_windows.txt");

}

void openup(String fileName) {

In.open(fileName);

int height = In.readInt();

int length = In.readInt();

Out.println("Height: " + height);

Out.println("Length: " + length);

char [][] a = new char[length][height];

for(int i=0;i<a.length;i++) {

for(int j =0;j<a[i].length;j++) {

a[i][j] = In.read();

Out.print(a[i][j]);

}

}

In.close();

}

}

[/CODE]

Die In und Out Klassen müssen wir verwenden.. Out.print statt System.Out.print

Und In hilft beim einlesen.

So, jetzt zum eigentlichen Problem..

Ansich funktioniert der Code, jedoch liest er auch newlines ein, weshalb das Array vorzeitig voll ist und nicht das ganze Spielfeld einliest.

Ausgabe: https://pastebin.com/czTDF2MA

Uns wurde gesagt, man soll einfach ein dummy-read reinmachen, was die newlines einliest und diese somit nicht zum Array hinzugefügt werden. Jemand hat auch gemeint, dass nach der inneren Schleife ein In.readLine(); das Problem löst.

Doch nichts hat mit geholfen.

Wie löse ich das Problem? :o

Computer, Studium, programmieren, Java, Eclipse, Informatik, Programmiersprache

[09:03:02 ERROR]: Error occurred while enabling plugin v1.0 (Is it up to date?) java.lang.NullPointerException?

Hallo seit kurzem habe ich das Problem das mein Chatclear Command nicht geht. Beim Start kommt diese Fehlermeldung:

[09:03:02 ERROR]: Error occurred while enabling plugin v1.0 (Is it up to date?)

java.lang.NullPointerException

    at de.name.plugin.main.Main.onEnable(Main.java:25) ~[?:?]

    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[spigot.jar:git-Spigot-c3c767f-33d5de3]

    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:335) [spigot.jar:git-Spigot-c3c767f-33d5de3]

    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot.jar:git-Spigot-c3c767f-33d5de3]

    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugin(CraftServer.java:356) [spigot.jar:git-Spigot-c3c767f-33d5de3]

    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.enablePlugins(CraftServer.java:316) [spigot.jar:git-Spigot-c3c767f-33d5de3]

    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.reload(CraftServer.java:746) [spigot.jar:git-Spigot-c3c767f-33d5de3]

    at org.bukkit.Bukkit.reload(Bukkit.java:534) [spigot.jar:git-Spigot-c3c767f-33d5de3]

    at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [spigot.jar:git-Spigot-c3c767f-33d5de3]

    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot.jar:git-Spigot-c3c767f-33d5de3]

    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchCommand(CraftServer.java:646) [spigot.jar:git-Spigot-c3c767f-33d5de3]

    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchServerCommand(CraftServer.java:632) [spigot.jar:git-Spigot-c3c767f-33d5de3]

    at net.minecraft.server.v1_8_R1.DedicatedServer.aM(DedicatedServer.java:353) [spigot.jar:git-Spigot-c3c767f-33d5de3]

    at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:317) [spigot.jar:git-Spigot-c3c767f-33d5de3]

    at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:634) [spigot.jar:git-Spigot-c3c767f-33d5de3]

    at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:537) [spigot.jar:git-Spigot-c3c767f-33d5de3]

    at java.lang.Thread.run(Unknown Source) [?:1.8.0_241]

Der Command ist in der plugin.yml und in der Main eingetragen. Eclipse selber erkennt auch keinen Fehler

PC, Technik, Java, Command, Eclipse, Error, Minecraft Plugin

Java GUI für Game erstellen: Platzierungsprobleme?

Hallo,

ich soll eine grafische Oberfläche für ein Spiel kreieren. Es soll aus einem JLabel (Überschrift), drei JButtons (für Start, eins setzen, zwei setzen) und eine Zeichnung (Graphics g) bestehen. Jetzt geht es erst einmal nur darum, dass richtig zu platzieren. Ich habe schon jegliche Layouts ausprobiert, aber ich bekomme es einfach nicht hin.

So soll es aussehen:

So bekomme ich es höchstmöglich hin:

Das ist der Code:

public class MyUI {
  public static void main(String[] args) {
    JFrame fenster = new JFrame("NIM-Spiel");
    MyJPanel grafiken = new MyJPanel();
    JPanel panel = new JPanel();
    panel.setLayout(new GridBagLayout());

    GridBagConstraints gbc = new GridBagConstraints();
    gbc.insets = new Insets(5, 5, 5, 5);

    JLabel ueberschrift = new JLabel("Variante des NIM-Spiels");+
    ueberschrift.setFont(new Font("ARIAL", Font.BOLD, 25));
    ueberschrift.setVerticalAlignment(JLabel.TOP);
    ueberschrift.setHorizontalAlignment(JLabel.CENTER);
    panel.add(ueberschrift);

    JButton startButton = new JButton("START");
    gbc.gridx = 0;
    gbc.gridy = 1;
    gbc.fill = GridBagConstraints.HORIZONTAL;
    panel.add(startButton, gbc);

    JButton button1 = new JButton("Eins setzen");
    gbc.gridx = 0;
    gbc.gridy = 2;
    panel.add(button1, gbc);

    JButton button2 = new JButton("Zwei setzen");
    gbc.gridx = 0;
    gbc.gridy = 3;
    panel.add(button2, gbc);

    fenster.setSize(1000, 570);
    fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    fenster.setLocationRelativeTo(null);
    fenster.setResizable(false);
    fenster.setContentPane(grafiken);
    fenster.add(panel);
    fenster.setVisible(true);
  }
}

Mit dem GridBagLayout hatte ich die besten Ergebnisse. Aber perfekt ist das nicht, mit dem GridLayout ging es auch nicht. Das BorderLayout hat nur das JPanel richtig positioniert, dafür konnte ich das set vertical und horizontal alignment wegmachen.

Wäre es vielleicht die Lösung, ein BorderLayout zu kreieren, wo oben das JLabel platziert, unten dann die Zeichnung und in der Mitte für die Buttons ein GridLayout eingeschoben wird? Also ein Layout in einem Layout?

Das ist noch zusätzlich meine Klasse für die Zeichnung: https://pastebin.com/Z6QSAHpm

PS.: Erst durch Setzen von superpaint g wurde die Zeichnung überhaupt im Fenster erstellt. Woran liegt das?

Bild zum Beitrag
Computer, Technik, programmieren, Java, Eclipse, Informatik, Technologie, Grafische Oberfläche, Java Swing, Spiele und Gaming

Meistgelesene Beiträge zum Thema Eclipse