Domanda

Sto cercando un editore o una biblioteca della GUI Java con la seguente proprietà esotica: la GUI può essere manipolata in fase di esecuzione. Cioè, un frame in esecuzione può includere controlli speciali, ad esempio, fare clic con il pulsante destro del mouse, che consentono agli utenti di aggiungere pulsanti e altri widget ad esso.

In alternativa, posso utilizzare un editor di GUI in grado di interagire con un programma Java in esecuzione. Il programma dice "Aggiungi un pulsante" e l'editor mostra all'utente una tavolozza con pulsanti. L'utente aggiunge un pulsante e lo preme e il programma riceve un pulsante "premuto".

C'è una cosa del genere che può essere usata fuori dallo scaffale, senza scriverlo da zero?

È stato utile?

Soluzione

Qualsiasi biblioteca Javabean conforme lo supporterebbe Tempo di progettazione semantica. In poche parole, un fagiolo (componente) è inteso funzionare in un contenitore. In tempi di progettazione, quel contenitore è l'editor "tela" e in runtime, la radice della gerarchia del contenitore (GUI). L'autore del fagiolo dovrebbe interrogare questa bandiera di stato e agire in modo appropriato, ad esempio il cambiamento di modifica in tempo di progettazione per includere "maniglie" da trascinare per il ridimensionamento, ecc. E, naturalmente, il componente principale (che si presume sia una tela di design di tipo ) dovrebbe inoltre rispettare le modifiche di progettazione, ad esempio modificare il layout per gestire il componente ridimensionato.

Detto questo, non credo che nessuna delle offerte attuali ti consenta semplicemente di passare da un tempo a design e runtime a capriccio nella tua app.

In effetti, dovrai (a) scegliere una libreria e (b) raggruppare i macchinari necessari per supportare DesignTime con la tua app in esecuzione e (c) in effetti mascherare una superficie di progettazione (tela) come GUI di runtime. Naturalmente dovrai solo supportare le operazioni di design a cui sei interessato, ma stai scrivendo un editor di GUI.

Qual è il vantaggio di questo approccio? Bene, stai riutilizzando "componenti" e per lo più devi hackerare il contenitore.

Se dovessi fare qualcosa del genere, guarderei seriamente Netbeans, Tieni a mente questa domanda STO, e prendilo da lì.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top