Menu
Coddy logo textTech

Text-Komponente

Teil des Abschnitts Object Oriented Programming der Rust-Journey von Coddy — Lektion 50 von 61.

challenge icon

Aufgabe

Einfach

Aufbauend auf dem Draw-Trait, den Sie in der vorherigen Lektion erstellt haben, fügen wir nun unsere erste echte UI-Komponente hinzu: ein TextField. Diese Komponente wird ein Textanzeigeelement in unserem Dokumentensystem darstellen.

Sie werden Ihr Projekt um eine neue Moduldatei erweitern:

  • draw.rs: Behalten Sie Ihren Draw-Trait aus der vorherigen Herausforderung bei.
  • text_field.rs: Erstellen Sie ein TextField-Struct mit einem öffentlichen content-Feld (ein String). Implementieren Sie den Draw-Trait für TextField, sodass der Aufruf von draw() den Text in einem spezifischen Format ausgibt: Text: {content}
  • main.rs: Binden Sie beide Module ein und erstellen Sie eine TextField-Instanz. Rufen Sie deren draw()-Methode auf, um die Komponente zu rendern.

Denken Sie daran, dass Ihr text_field-Modul den Draw-Trait aus dem draw-Modul verwenden muss. Sie können darauf mit crate::draw::Draw zugreifen, da beide Module Teil desselben Crates sind.

Die folgende Eingabe wird bereitgestellt:

  • Ein String, der den Inhalt des Textfeldes darstellt

Ihre Ausgabe sollte genau diesem Format folgen:

Text: Hello World

Probier es selbst

mod draw;
mod text_field;

use draw::Draw;

pub struct Label {
    pub text: String,
}

impl Draw for Label {
    fn draw(&self) {
        println!("{}", self.text);
    }
}

fn main() {
    let mut input = String::new();
    std::io::stdin().read_line(&mut input).expect("Failed to read line");
    let content = input.trim().to_string();

    // TODO: Erstelle eine TextField-Instanz und rufe draw() darauf auf
}

Alle Lektionen in Object Oriented Programming