I am having the hardest time getting the fenggui examples to run. I go to the following site and pull down the code but I cant get them to run. I am a total nube the fenggui so if someone can point me in the right direction as to how to run these that would be great!
http://www.fenggui.org/doku.php?id=doc:examples:examples
This is kind of a question for the FengGUI forums isn't it?
But to point you in the right direction; you will need to create an 'example runner'. Either use LWJGL or JOGL (make sure they are the right versions for FengGUI) then simply start up a basic rendering loop and add the FengGUI stuff… Check out the (FengGUI) HelloWorld example for a JOGL implementation.
Well since I use it anyway in my project, I think it won't harm if i simply post my characterSelection Screen. (Note I use a Renderpass, because else this would be below the Renderer.QUEUE_ORTHO that is used for my background.
package RenderPasses;
import java.util.ArrayList;
import java.util.ListIterator;
import org.fenggui.Button;
import org.fenggui.Display;
import org.fenggui.FengGUI;
import org.fenggui.Label;
import org.fenggui.TextEditor;
import org.fenggui.composite.Window;
import org.fenggui.event.ButtonPressedEvent;
import org.fenggui.event.IButtonPressedListener;
import org.fenggui.util.Point;
import Engine.ClientConnection;
import Interface.Console;
import Interface.util.FengJMEInputHandler;
import LoginServerClient.PendingClient.AdditionPlayerData;
import LoginServerClient.PendingClient.DeleteCharacter;
import LoginServerClient.PendingClient.NewCharacter;
import LoginServerClient.PendingClient.PlayerData;
import LoginServerClient.PendingClient.RequestAdditionData;
import LoginServerClient.PendingClient.SelectCharacter;
import RenderPasses.Manager.RenderPassManager;
import com.jme.input.InputHandler;
import com.jme.renderer.Renderer;
import com.jme.renderer.pass.RenderPass;
import com.jme.system.DisplaySystem;
public class CharacterSelection extends RenderPass{
static ArrayList<Button> removeonredraw = new ArrayList<Button>();
private static InputHandler input;
static Display fengguidisplay;
private static int xpercent;
private static int ypercent;
private static int buttoncount = 0;
static Label name;
private static Label credits;
private static Label Mapname;
private static Label MapDesription;
private static Label Status;
static int selectedid = -1;
private static Label IsFemale;
private static Label IsAdmin;
private static Label Rank;
private static Label Rankpoints;
static Window selection;
static Window creation;
static Window delete;
static Label deletemessage;
static public String GetName(){
return "Character Selection Pass";
}
CharacterSelection(){
xpercent = DisplaySystem.getDisplaySystem().getWidth()/100;
ypercent = DisplaySystem.getDisplaySystem().getHeight()/100;
fengguidisplay = new org.fenggui.Display(new org.fenggui.binding.render.lwjgl.LWJGLBinding());
input = new FengJMEInputHandler(fengguidisplay);
BuildSelectionGUI();
BuildCreationGUI();
BuildAreyousure();
this.setEnabled(false);
}
private void BuildAreyousure() {
delete = FengGUI.createWindow(fengguidisplay,false,false,false,false);
delete.setTitle("Are you sure?");
delete.setPosition(new Point(xpercent*30,ypercent*35));
delete.setSize(xpercent*40,ypercent*15);
delete.setResizable(false);
delete.setMovable(false);
delete.setVisible(false);
deletemessage = FengGUI.createLabel(delete);
deletemessage.setPosition(new Point(xpercent * 5,ypercent * 5));
deletemessage.setSize(xpercent * 40, ypercent*10);
deletemessage.setText("Missing");
Button yes = FengGUI.createButton(delete);
yes.setText("Yes");
yes.setSize(xpercent * 20, ypercent * 5);
yes.setPosition(new Point(xpercent * 20,ypercent * 0));
yes.addButtonPressedListener(new IButtonPressedListener(){
@Override
public void buttonPressed(ButtonPressedEvent arg0) {
ListIterator<Button> iter = removeonredraw.listIterator();
Button cur;
while(iter.hasNext()){
cur = iter.next();
Console.println("Name: " +cur.getText() + "-" + name.getText());
if (("Name: " + cur.getText()).equals(name.getText())){
selection.removeWidget(cur);
}
}
delete.setVisible(false);
DeleteCharacter del = new DeleteCharacter();
del.setUserid(selectedid);
ClientConnection.SendMessageToServer(del);
selection.setVisible(true);
}
});
Button no = FengGUI.createButton(delete);
no.setText("No");
no.setSize(xpercent * 20, ypercent * 5);
no.setPosition(new Point(xpercent * 0,ypercent * 0));
no.addButtonPressedListener(new IButtonPressedListener(){
@Override
public void buttonPressed(ButtonPressedEvent arg0) {
delete.setVisible(false);
selection.setVisible(true);
}
});
delete.layout();
}
private void BuildCreationGUI() {
creation = FengGUI.createWindow(fengguidisplay,false,false,false,false);
creation.setTitle("Create a Character");
creation.setSize(xpercent*100,ypercent*100);
creation.setResizable(false);
creation.setMovable(false);
creation.setVisible(false);
final TextEditor createname = FengGUI.createTextField(creation);
createname.setSize(xpercent*10,ypercent*10);
createname.setPosition(new Point(xpercent*5,ypercent*10));
createname.setEmptyText("Enter a Name");
Button createnow = FengGUI.createButton(creation);
createnow.setText("Create it!");
createnow.setSize(xpercent * 20, ypercent * 5);
createnow.setPosition(new Point(xpercent * 0,ypercent * 0));
createnow.addButtonPressedListener(new IButtonPressedListener(){
@Override
public void buttonPressed(ButtonPressedEvent arg0) {
NewCharacter create = new NewCharacter();
create.setName(createname.getText());
ClientConnection.SendMessageToServer(create);
creation.setVisible(false);
}
});
}
private void BuildSelectionGUI() {
selection = FengGUI.createWindow(fengguidisplay,false,false,false,false);
selection.setTitle("Select a Character");
selection.setSize(xpercent*100,ypercent*100);
selection.setResizable(false);
selection.setMovable(false);
name = FengGUI.createLabel(selection,"Name:
");
name.setSize(xpercent*60,ypercent*20);
name.setPosition(new Point(xpercent*40,ypercent*80));
credits = FengGUI.createLabel(selection,"Credits:
");
credits.setSize(xpercent*60,ypercent*20);
credits.setPosition(new Point(xpercent*40,ypercent*75));
Mapname = FengGUI.createLabel(selection,"Mapname:
");
Mapname.setSize(xpercent*60,ypercent*20);
Mapname.setPosition(new Point(xpercent*40,ypercent*70));
MapDesription = FengGUI.createLabel(selection,"MapDesription:
");
MapDesription.setSize(xpercent*60,ypercent*20);
MapDesription.setPosition(new Point(xpercent*40,ypercent*65));
IsFemale = FengGUI.createLabel(selection,"IsFemale:
");
IsFemale.setSize(xpercent*60,ypercent*20);
IsFemale.setPosition(new Point(xpercent*40,ypercent*60));
IsAdmin = FengGUI.createLabel(selection,"IsAdmin:
");
IsAdmin.setSize(xpercent*60,ypercent*20);
IsAdmin.setPosition(new Point(xpercent*40,ypercent*55));
Rank = FengGUI.createLabel(selection,"Rank:
");
Rank.setSize(xpercent*60,ypercent*20);
Rank.setPosition(new Point(xpercent*40,ypercent*50));
Rankpoints = FengGUI.createLabel(selection,"Credits:
");
Rankpoints.setSize(xpercent*60,ypercent*20);
Rankpoints.setPosition(new Point(xpercent*40,ypercent*45));
Status = FengGUI.createLabel(selection,"Status:
");
Status.setSize(xpercent*60,ypercent*20);
Status.setPosition(new Point(xpercent*40,ypercent*40));
Button create = FengGUI.createButton(selection);
create.setText("Create character");
create.setSize(xpercent * 40, ypercent * 10);
create.setPosition(new Point(xpercent * 60,ypercent * 0));
create.addButtonPressedListener(new IButtonPressedListener(){
@Override
public void buttonPressed(ButtonPressedEvent arg0) {
selection.setVisible(false);
creation.setVisible(true);
}
});
final Button deletebutton = FengGUI.createButton(selection);
deletebutton.setText("Delecte selected character");
deletebutton.setSize(xpercent * 40, ypercent * 10);
deletebutton.setPosition(new Point(xpercent * 60,ypercent * 10));
deletebutton.addButtonPressedListener(new IButtonPressedListener(){
@Override
public void buttonPressed(ButtonPressedEvent arg0) {
if(selectedid != 0){
selection.setVisible(false);
deletemessage.setText("Delete " + name.getText());
delete.setVisible(true);
}
}
});
final Button selectbutton = FengGUI.createButton(selection);
selectbutton.setText("Play with selected Character");
selectbutton.setSize(xpercent * 40, ypercent * 20);
selectbutton.setPosition(new Point(xpercent * 60,ypercent * 40));
selectbutton.addButtonPressedListener(new IButtonPressedListener(){
@Override
public void buttonPressed(ButtonPressedEvent arg0) {
if(selectedid != 0){
RenderPassManager.getInstance().SetActive(CharacterSelection.GetName(),false);
SelectCharacter select = new SelectCharacter();
select.setUserId(selectedid);
ClientConnection.SendMessageToServer(select);
}
}
});
selection.layout();
}
public void setEnabled(boolean status){
super.setEnabled(status);
input.setEnabled(status);
}
public static void Show(){
RenderPassManager.getInstance().SetActive(CharacterSelection.GetName(), true);
}
public static void SetCharacters(final PlayerData mymessage) {
Console.println(mymessage.toString());
Button button = FengGUI.createButton(selection);
removeonredraw.add(button);
button.setText(mymessage.getName());
button.setSize(xpercent * 40, ypercent * 10);
button.setPosition(new Point(0,buttoncount * ypercent * 12));
buttoncount++;
button.addButtonPressedListener(new IButtonPressedListener(){
@Override
public void buttonPressed(ButtonPressedEvent arg0) {
Console.println("Requestiong Data for " + mymessage.getUserId());
RequestDateForPlayer(mymessage.getUserId());
}
});
selection.setVisible(true);
}
protected static void RequestDateForPlayer(int playerId) {
RequestAdditionData reqmessage = new RequestAdditionData();
reqmessage.setUserId(playerId);
ClientConnection.SendMessageToServer(reqmessage);
}
public void doRender(Renderer renderer){
fengguidisplay.display();
}
public void doUpdate(float tpf){
input.update(tpf);
}
public static void SetAdditionData(AdditionPlayerData mymessage){
name.setText("Name: " + mymessage.getName());
credits.setText("Credits: " + mymessage.getCredits());
Mapname.setText("Mapname: " + mymessage.getMapname());
MapDesription.setText("MapDesription: " + mymessage.getMapDesription());
Status.setText("Status: " + mymessage.getStatus());
Rank.setText("Rank: " + mymessage.getRank());
Rankpoints.setText("Rankpoints: " + mymessage.getRankpoints());
selectedid = mymessage.getUserId();
if (mymessage.isFemale()){
IsFemale.setText("Gender: Female");
}
else
{
IsFemale.setText("Gender: Male");
}
if (mymessage.isAdmin()){
IsAdmin.setText("Userclass: Admin");
}
else
{
IsAdmin.setText("Userclass: User");
}
}
public static int GetSelectedUserId() {
return selectedid;
}
}