Wie kann ich einen JButton einen Text zuweisen, welcher von einem String kommt?

Ich versuche gerade eine Art Tunier zu erstellen. Hierbei werden zwei JButtons angezeigt, welche als Text zufällige Namen zugewiesen bekommen. Jedes mal wenn man einen Button drückt bekommt derjenige auf dem gedrückt wurde einen Punkt. So schaut das Programm aus:

Jedoch kommt nach jedem mal drücken eine Fehler-Meldung. Ich bin mir ziehmlich sicher das es an dem Befehl "main.button.setText(main.name.setText[a]);" liegt.
Wenn ich anstatt dem String Array ein Wort eingib (z.B. "Hallo"), dann funktioniert es ohne Probleme. Also muss es am String Array liegen.

Also wie schafft man es, dass man einem Button einen Text durch ein String/String Array zuweißt?

Hier ein Abschnitt meines Programmes:

@Override
   public void actionPerformed(ActionEvent e) {
      if(e.getSource() == main.button) {
         main.button.setText(main.names[a]); //Hier kommt die Fehlermeldung
         main.button1.setText(main.names[b]);
         main.namePoints[a]=main.namePoints[a]+1; //Punkteanzahl des Spieler wird
         a=a+2; //a wird erhöht damit neue Spieler drankommen erhöht
         b=b+2; //b wird erhöht damit neue Spieler drankommen
      }
      if(e.getSource() == main.button1) {
         main.button.setText(main.names[a]);
         main.button1.setText(main.names[b]);
         main.namePoints[b]=main.namePoints[b]+1;
         a=a+2;
         b=b+2;
      }
   }
Wie kann ich einen JButton einen Text zuweisen, welcher von einem String kommt?
Computer, Programmieren, Java, Eclipse, Informatik, String
Was ist hier genau das Problem (Programmieren = p5.js)?

Ich habe ein Problem mit dem programmieren, da angeblich p5js sagt: There's an error due to \"keyIsDown\" not being defined in the current scope (on line 36 in jspg?

Ich habe mal meinen Code hineinkopiert und hoffe, dass jemand hier mir helfen kann. (Ist ein Projekt für die Schule).

Ich würde gerne das Programm, wie es hier steht, ohne Probleme es zum laufen zu bringen.

let v;

let b;

let n;

let m;

let vGeschwindigkeit;

let bGeschwindigkeit;

let nGeschwindigkeit;

let mGeschwindigkeit;

function setup() {

createCanvas(310, 400);

background('lightgray');

v = -200;

b = -200;

n = -200;

m = -200;

vGeschwindigkeit = random(6); // Eine Zufallszahl zuordnen

bGeschwindigkeit = random(6); // Eine Zufallszahl zuordnen

nGeschwindigkeit = random(6); // Eine Zufallszahl zuordnen

mGeschwindigkeit = random(6); // Eine Zufallszahl zuordnen

}

function draw() {

background(240); // Löscht Bild

rect(10, v, 65, 100);

fill('black');

rect(85, b, 65, 100);

fill('black');

rect(160, n, 65, 100);

fill('black');

rect(235, m, 65, 100);

fill('white');

circle(mouseX, mouseY, 10); // Mauszeigerkreis

fill('black');

}

if (keyIsDown(82)) { //taste r -> Spiel neu

setup();

}

if (mouseIsPressed) {

  rgbFarbwerte = get(mouseX, mouseY);

  if (rgbFarbwerte[0] > 0) {

  v = -200;

  b = -200;

  n = -200;

  m = -200; //Falls man den Hintergrund drückt, dann soll das Spiel nochmal von Anfang an wieder starten.

  }

}

if (mouseIsPressed) {

if (10 < mouseX && mouseX < 75 &&

v < mouseY && mouseY < v + 100) {

v = -200; //Taste 1 geht in die Ausgangslage

vGeschwindigkeit = random(6); //ändert Geschwindigkeit nochmal

}

}

if (mouseIsPressed) {

if (85 < mouseX && mouseX < 150 &&

b < mouseY && mouseY < b + 100) {

b = -200; //Taste 2 geht in die Ausgangslage

bGeschwindigkeit = random(6); //ändert Geschwindigkeit nochmal

}

}

if (mouseIsPressed) {

if (160 < mouseX && mouseX < 225 &&

n < mouseY && mouseY < n + 100) {

n = -200; //Taste 1 geht in die Ausgangslage

nGeschwindigkeit = random(6); //ändert Geschwindigkeit nochmal

}

}

if (mouseIsPressed) {

if (235 < mouseX && mouseX < 310 &&

m < mouseY && mouseY < m + 100) {

m = -200; //Taste 1 geht in die Ausgangslage

nGeschwindigkeit = random(6); //ändert Geschwindigkeit nochmal

}

}

v = v + vGeschwindigkeit;

if (v > height) {

v = -100;

vGeschwindigkeit = random(6); // Eine Zufallszahl zuordnen für Taste 1

}

b = b + bGeschwindigkeit;

if (b > height) {

b = -100;

bGeschwindigkeit = random(6); // Eine Zufallszahl zuordnen für Taste 2

}

n = n + nGeschwindigkeit;

if (n > height) {

n = -100;

nGeschwindigkeit = random(6); // Eine Zufallszahl zuordnen für Taste 3

}

m = m + mGeschwindigkeit;

if (m > height) {

m = -100;

mGeschwindigkeit = random(6); // Eine Zufallszahl zuordnen für Taste 4

}

PC, Computer, Programmieren, JavaScript, Informatik, Programmiersprache
Wo ist der Fehler?

So sieht eine Nachricht aus:

Ich möchte mit PHP mehrere Nachrichten aus einer Textdatei auslesen und neue Nachrichtenblasen erstellen lassen.

<app-chat-message _ngcontent-pry-c164="" _nghost-pry-c133="" class="ng-tns-c164-8 ng-star-inserted">
  <a _ngcontent-pry-c133="" class="user-image ng-star-inserted" href="https://app.schul.cloud/#/contacts/profile/2839684">
    <img _ngcontent-pry-c133="" src="./schul.cloud_files/profile-1855a1244e4895a92efa65cd78bf688c.jpg" class="ng-star-inserted">
    <!---->
  </a>
  <!---->
  <!---->
  <div _ngcontent-pry-c133="" class="bubble ng-star-inserted">
    <app-icon _ngcontent-pry-c133="" icon="more_horizontal" class="menu-toggle icon ng-star-inserted" _nghost-pry-c76="">
      <svg _ngcontent-pry-c76="" role="img" xmlns="http://www.w3.org/2000/svg" data-icon="more_horizontal">
        <use _ngcontent-pry-c76="" xlink:href="#more_horizontal" href="#more_horizontal"></use>
      </svg>
    </app-icon>
    <!---->
    <div _ngcontent-pry-c133="" class="name default-cursor ng-star-inserted">Alexandra Hummel</div>
    <!---->
    <!---->
    <!---->
    <!---->
    <div _ngcontent-pry-c133="" dir="ltr" class="message space-1x text text-select ng-star-inserted">
      <?php
        $text = file_get_contents('chat.txt');
        echo nl2br($text);
        $text = str_replace(array("\n", "\r"), '', $text);
      ?>
    </div>
    <div _ngcontent-pry-c133="" class="meta ng-star-inserted">
      <span _ngcontent-pry-c133="" class="time ng-star-inserted">15:32</span>
    </div>
  </div>
  <app-menu _ngcontent-pry-c133="" _nghost-pry-c90=""></app-menu>
</app-chat-message>
Wo ist der Fehler?
Computer, HTML, Programmieren, Problemlösung
Einfaches JavaScript-Spiel per Tastendruck neu starten?

Wir hatten in der Schule den Auftrag ein einfaches JavaScript-Spiel zu programmieren. Ich will das Programm nun durch einen Druck auf die Taste "R" neu starten. Hier ist der Code:

let start,
ziel,
ballradius,
rgbFarbwerte,
x,
y;
function setup() {
  createCanvas(400, 400);
  background('black');
  stroke("white");
  start = circle(60, 390, 10);
  ziel = circle(40, 390, 10);
  ballradius = 2;
  x = 60;
  y = 390;
}
function draw() {
  //lösche bild
  background("black");
  //zeichne Spielfeld
  fill('white');
  stroke("white");
  rect(20, 300, 80, 100);
  rect(50, 300, 100, 60);
  rect(140, 260, 50, 100);
  rect(140, 240, 120, 40);
  rect(230, 170, 30, 100);
  rect(160, 160, 100, 30);
  rect(160, 40, 20, 120);
  rect(160, 40, 100, 10);
  rect(260, 1, 5, 49);
  //zeichne Start-,Endpunkt
  fill("blue");
  stroke("blue");
  circle(60, 390, 10);
  fill("red");
  stroke("red");
  circle(262.25, 10, 10);
  rgbFarbwerte = get(x, y);
  if (rgbFarbwerte[0] === 0 && rgbFarbwerte[1] === 0 && rgbFarbwerte[2] === 0) {
    background("red");
    console.clear();
    console.log("Game over");
  }
  if (rgbFarbwerte[0] === 255 && rgbFarbwerte[2] === 0) {
    background("green");
    console.clear();
    console.log("You win");
  }
  //zeichne Kreis
  stroke("lightgreen");
  fill("lightgreen");
  circle(x, y, 4);
  //steuere Kreis
  if (keyIsDown(68)) { //taste d -> nach rechts
    x = x + 2;
  }
  if (keyIsDown(65)) { //taste a -> nach links
    x = x - 2;
  }
  if (keyIsDown(87)) { // taste w -> nach oben
    y = y - 2;
  }
  if (keyIsDown(83)) { // taste s -> nach unten
    y = y + 2;
  }
}
Computer, Schule, Technik, Programmieren, JavaScript, Informatik
Python komischer Fehler?

Ich verstehe diesen Fehler nicht: Traceback (most recent call last):

AttributeError: 'function' object has no attribute 'tk'

Ich kann übrigens nicht alles vom Fehler schreiben, weil sonst der Text zu lang ist...

Bin dankbar für jede Hilfe.

Hier ist der Code, bei dem der Fehler angezeigt wird:

from tkinter import *
from tkinter import messagebox, Menu

root = Tk()
root.title("SchülerOffice" )
def school_button_action():
    DE_button = Button(lambda: root, text='Deutsch', command=lambda: DE_button_command, width=10).pack()
    MA_button = Button(lambda: root, text='Mathe', width=10).pack()
    MI_button = Button(lambda: root, text='MI', width=10).pack()
    TTG_button = Button(lambda: root, text='TTG', width=10).pack()
    GE_button = Button(lambda: root, text='GE', width=10).pack()
    GG_button = Button(lambda: root, text='GG', width=10).pack()
    BG_button = Button(lambda: root, text='BG', width=10).pack()
    FR_button = Button(lambda: root, text='FR',width=10).pack()
    NT_button = Button(lambda: root, text='NT', width=10).pack()
    WAH_button = Button(lambda: root, text='WAH', width=10).pack()
    BS_button = Button(lambda: root, text='BS', width=10).pack()
    EN_button = Button(lambda: root, text='EN', width=10).pack()
    MU_button = Button(lambda: root, text='MU', width=10).pack()
    LAT_button = Button(lambda: root, text='LAT', width=10).pack()

def DE_button_command():
    print('shakagfahskfdjhlkasjdfh')


global grade_give_command

'''def mail():
    mail_root = Tk()
    label1 = Label(mail_root, text='Enter Mail').pack()
    entry_mail = Entry(mail_root).pack()
    label2 = Label(mail_root, text='To: instanceof7@gmail.com').pack()
    entry_message = Entry(mail_root).pack()'''

def action_get_info_dialog():
    m_text = '***********************************\nSchülerOffice\n' \
             'Version:1.0.0\nAutor: *******\n' \
             'Contact: ********\n***********************************'
    messagebox.showinfo(message=m_text, title="Infos")

def support_main_command():
    import webbrowser
    gmail_url = 'https://www.gmail.com'
    webbrowser.open(gmail_url)

# Menüleiste erstellen
menuleiste = Menu(root)

datei_menu: Menu = Menu(menuleiste, tearoff=1)
help_menu = Menu(menuleiste, tearoff=1)
support_menu = Menu(menuleiste, tearoff=1)

datei_menu.add_command(label="Fach hinzufügen", command=school_button_action())

help_menu.add_command(label="Info", command=action_get_info_dialog)

support_menu.add_command(label='Contact', command=support_main_command)

# Nun fügen wir die Menüs (Datei und Help) der Menüleiste als
# "Drop-Down-Menü" hinzu
menuleiste.add_cascade(label="Datei", menu=datei_menu)
menuleiste.add_cascade(label="Help", menu=help_menu)
menuleiste.add_cascade(label='Support', menu=support_menu)

# Die Menüleiste mit den Menüeinrägen noch dem Root übergeben und fertig.
root.config(menu=menuleiste)

root.mainloop()

#aktion zu buttons der schule hinzufügen (wenn schon auf datei>fach hinzufügen gedrückt)
Computer, Programmieren, Informatik, Python
Java Anfänger Hilfe?
import java.util.Scanner;
 
public class example {
  public static void main(String[] args) {
     
  	System.out.println("Kinokartenpreis: 20€");
  	System.out.println("Wollen sie Karten kaufen? (ja = 1 / nein = 2)");
    Scanner input = new Scanner(System.in);
     
    System.out.print("Eingabe der Nummer: ");
    int number = input.nextInt();
  
    if(number == 1)	{
    	System.out.println("Wie viele Karten wollen sie kaufen?");
    }
     
    if(number == 2)	{
    	System.out.println("Schade dass sie keine Karte kaufen wollen!");
    }
     
    if(number > 2)	{
    	System.out.println("Ungültige nummer!");
    }
     
    input.close();
  }
}

Ich bin Java Anfänger und wollte ein kleines "Programm" schreiben bei dem man mit Inputs Kinokarten "kaufen" kann.

Wie man im Code sieht kann man mit den Zahlen 1 und 2 bestimmen ob man eine Karte kaufen will und das mit dem "Wie viele Karten..." das mache ich später einfach ignorieren.

Meine Fragen jetzt:

  1. Wie kann ich es machen dass man statt 1 und 2 einfach ja und nein schreiben kann?
  2. Wenn man jetzt 3 oder eine andere ungültige Zahl eingibt wie kann ich das machen dass man dann wieder die Möglichkeit hat etwas einzugeben also dass der Code einfach weiter vorne wieder startet?
  3. Und zuletzt wie kann ich dass wenn man beim Input anstatt Zahlen Buchstaben oder andersrum etwas falsches eingibt, machen dass dann nicht einfach ein Fehler im Code kommt sondern dass dann da irgendwie steht "Bitte nochmal versuchen" halt ohne Fehler

Danke schonmal! :)

Computer, Programmieren, Java, Computersprache, Informatik, java programmieren
Webseite in NodeJS oder PHP?

Hallo,

ich bin gerade dabei eine kleine Webseite zu schreiben, die muss gar nicht so viel können: kleines CMS, Benutzer sollen sich registrieren und Nachrichten empfangen und schreiben können (würde das gerne als Echtzeitchatsystem, sprich Websockets, lösen).

In PHP kenne ich mich weitestgehend aus - NodeJS ist ziemliches Neuland für mich. Trotzdem habe ich es nun erstmal mit NodeJS versucht, weil ich mir das gerne einmal ansehen wollte (probiere gerne was neues).

Nun habe ich das CMS fertig, bin ich aber an dem Punkt wo ich ein Zwischenfazit fassen wollte. Ich bin mir nicht sicher, ob ich nun bei NodeJS bleiben soll oder ob ich in PHP neu anfangen soll (ein CMS ist nun nicht so viel Aufwand, dass mich ein Neuanfang stören würde).

Warum ich Zweifel habe ist folgendes:

  • NodeJS ist asynchron, das macht viele Dinge komplizierter, bzw. selbst einfachste Dinge muss man sehr viel mehr planen und man kommt irgendwie schnell in eine nie enden-wollende Abfolge von Callbacks (ich finde auch Promises irgendwie nicht so geil, was das angeht)
  • Mir kommt NodeJS sehr "unbeständig" vor. Mir ist aufgefallen, dass vorallem bei Paketen die man sich dazu installiert oft gerne von einer Version auf die andere alles bestehende umgeworfen wird - das finde ich bei PHP entspannter, da kann man auch veraltete Sachen noch eine Weile nutzen, sodass man sich nach und nach umstellen kann und sich in alles neue einarbeiten kann (und ich weiß, NPM ist nicht NodeJS, aber ich würde sagen es gehört doch irgendwie zwingend dazu)
  • ...in NodeJS kann ein Fehler, den man nicht abfängt, zum kompletten Absturz des Webservers führen. Das macht mir irgendwie Sorge und da ist man bei PHP doch besser dran: ein Fehler sorgt in der Regel nur dafür, dass diese Aktion nun abgebrochen wird aber die Webseite für alle anderen wie gewohnt weiter läuft.

Meine Frage, an all die die bis hierhin gelesen haben: Kommt mir das alles nur am Anfang so schlimm vor und NodeJS ist trotzdem eine gute Wahl oder würdet ihr auch eher raten zu PHP zu wechseln?

Ich freue mich über jede Meinung :)

Computer, Webseite, Programmieren, PHP, Softwareentwicklung, Webserver, node.js
Wie kann ich mehrere Münzen in PyGame einsammeln?

Hallo,

ich habe eine Frage zu meinem Programm.

Nachdem ich die dritte Münze in meinem Spiel eingesammelt habe, wird komischerweise die zweite Münze anstatt der Dritten gespawnt. Wie kann ich das ändern? Bzw. hat jemand eine Idee, wie sich das beheben lässt?

Hier ist mein Code:

from random import randint

WIDTH = 600
HEIGHT = 600
score = 0
game_over = False

mario = Actor("mario.png")
mario.pos = 100, 100

coin = Actor("money.png")
coin.pos = 0, 0

def draw():
  screen.fill("green")
  mario.draw()
  coin.draw()
  screen.draw.text("Punkte: " + str(score), color="black", topleft=(10, 10))

  if game_over:
    screen.fill("pink")
    screen.draw.text("Endstand:" + str(score), topleft=(10, 10), fontsize = 60)

def place_coin():
  coin.x = 100
  coin.y = 200

def place_coin2():
  coin.x = 100
  coin.y = 300

def place_coin3():
  coin.x = 100
  coin.y = 400

def place_coin4():
  coin.x = 100
  coin.y = 500

def place_coin5():
  coin.x = 300
  coin.y = 100

def place_coin6():
  coin.x = 300
  coin.y = 300

def place_coin7():
  coin.x = 500
  coin.y = 200

def place_coin8():
  coin.x = 500
  coin.y = 300

def place_coin9():
  coin.x = 500
  coin.y = 400

def place_coin10():
  coin.x = 500
  coin.y = 500

def place_coin11():
  coin.x = 700
  coin.y = 100

def place_coin12():
  coin.x = 700
  coin.y = 300

def time_up():
  global game_over
  game_over = True

def update():
  global score

  if keyboard.left:
    mario.x = mario.x - 4
  elif keyboard.right:
    mario.x = mario.x + 4
  elif keyboard.up:
    mario.y = mario.y - 4
  elif keyboard.down:
    mario.y = mario.y + 4

  coin_collectet = mario.colliderect(coin)

  if coin_collectet:
    score = score + 10
    place_coin2()

  coin_collectet = mario.colliderect(coin)

  if coin_collectet:
    score = score + 10
    place_coin10()

  coin_collectet = mario.colliderect(coin)

  if coin_collectet:
    score = score + 10
    place_coin4()

  coin_collectet = mario.colliderect(coin)

  if coin_collectet:
    score = score + 10
    place_coin8()

clock.schedule(time_up, 20.0)
place_coin()
Programmieren, Pygame

Meistgelesene Fragen zum Thema Programmieren