Hi Leute,
ich wollte eigentlich mit einem einfachen Spiel beginne nachdem ich zig Tutorials durchgeführt habe. Meine erste idee war ein Textbasiertes Rollenspiel, was sich aber als schwieriger erwies als gedacht. Darum nahm ich mir vor zunächst ein Würfelspiel zu programmieren. In einer Konsolenvariante hatte ich das ganze schon perfekt. Jetzt wollte ich es in einer GUI unterbringen, habe also von neuem begonnen. Allerdings scheitere ich wie auch beim ersten Versuch des textbasierten Rollenspiels an folgender Stelle:
Meine Methoden werden ausgeführt (habe ich mit System.out.println("")) überprüft aber es kommt nicht zu einem Ergebnis. Das GUI habe ich über NetBeans mit einer neuen Swing GUI JFrame file erstellt, was sich als sehr bequem erwiesen hat. Den daraus generierten Code habe ich markiert.
Zusätzlich existiert noch die kleine Klasse Background in der ich alle Prozesse berechnen lassen wollte. Es würde zwar alles einfacher gehen, dass weiss ich. Ich wollte aber speziell so den besseren Umgang mit den Klassenmodellen lernen, außerdem würde es mein Problem bei dem anderen spiel auch lösen.
Die rot markierte Methode(n) sind generiert.
Blau sind die Methoden die nicht das ausführen was sie sollen
und Grün ist ein Button bei dem allerdings die setText methode funktioniert. :bahnhof:
edit: Ich seh gerade dass die farbigen unterlegungen in einem code nicht funktionieren. Daher habe ich diese mit kommentaren versehen.
Ich hoffe ihr könnt mir helfen, danke im vorraus.
ich wollte eigentlich mit einem einfachen Spiel beginne nachdem ich zig Tutorials durchgeführt habe. Meine erste idee war ein Textbasiertes Rollenspiel, was sich aber als schwieriger erwies als gedacht. Darum nahm ich mir vor zunächst ein Würfelspiel zu programmieren. In einer Konsolenvariante hatte ich das ganze schon perfekt. Jetzt wollte ich es in einer GUI unterbringen, habe also von neuem begonnen. Allerdings scheitere ich wie auch beim ersten Versuch des textbasierten Rollenspiels an folgender Stelle:
Meine Methoden werden ausgeführt (habe ich mit System.out.println("")) überprüft aber es kommt nicht zu einem Ergebnis. Das GUI habe ich über NetBeans mit einer neuen Swing GUI JFrame file erstellt, was sich als sehr bequem erwiesen hat. Den daraus generierten Code habe ich markiert.
Java:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package Spiel1;
import java.util.Random;
/**
*
* @author Thomas
*/
public class Frame extends javax.swing.JFrame {
/**
* Creates new form Frame
*/
public Frame() {
initComponents();
}
int Augenzahl;
int gewuerfelt = 0;
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// Ab hier ist der generierte Code
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
Feld = new javax.swing.JTextArea();
Button = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
Feld.setColumns(20);
Feld.setRows(5);
jScrollPane1.setViewportView(Feld);
Button.setText("Wuerfeln");
Button.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ButtonActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(Button))
.addContainerGap(224, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 159, Short.MAX_VALUE)
.addComponent(Button)
.addContainerGap())
);
pack();
}// </editor-fold>
// Diese Methode hingegen verändert den Text auf dem Feld.
private void ButtonActionPerformed(java.awt.event.ActionEvent evt) {
Random random = new Random();
if (gewuerfelt == 0)
{
Augenzahl = 1 + random.nextInt(6);
Feld.setText("Ihr habt eine " + Augenzahl + " gewürfelt.");
gewuerfelt = 1;
}
}
// Diese Methoden funktionieren nicht wie sie es sollen
public int getAugenzahl()
{
return Augenzahl;
}
public int getgewuerfelt()
{
return gewuerfelt;
}
public void resetgewuerfelt()
{
gewuerfelt = 0;
Feld.setText("TEST");
}
/*public void Update()
{
String tmp = Feld.getText();
Feld.setText(tmp + " 1 ");
}
*/
/**
* @param args the command line arguments
*/
public static void start() {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see [url=http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html]How to Set the Look and Feel (The Java™ Tutorials > Creating a GUI With JFC/Swing > Modifying the Look and Feel)[/url]
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Frame().setVisible(true);
}
});
}
// Variables declaration - do not modify
public javax.swing.JButton Button;
public javax.swing.JTextArea Feld;
private javax.swing.JScrollPane jScrollPane1;
// End of variables declaration
}
Zusätzlich existiert noch die kleine Klasse Background in der ich alle Prozesse berechnen lassen wollte. Es würde zwar alles einfacher gehen, dass weiss ich. Ich wollte aber speziell so den besseren Umgang mit den Klassenmodellen lernen, außerdem würde es mein Problem bei dem anderen spiel auch lösen.
Java:
public class Background {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Frame Ebene = new Frame();
Ebene.start();
while(true)
{
if (Ebene.gewuerfelt == 1)
{
Ebene.resetgewuerfelt();
}
}
}
Die rot markierte Methode(n) sind generiert.
Blau sind die Methoden die nicht das ausführen was sie sollen
und Grün ist ein Button bei dem allerdings die setText methode funktioniert. :bahnhof:
edit: Ich seh gerade dass die farbigen unterlegungen in einem code nicht funktionieren. Daher habe ich diese mit kommentaren versehen.
Ich hoffe ihr könnt mir helfen, danke im vorraus.
Zuletzt bearbeitet: