Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted
 @Override
    protected void init()
    {
        super.init();
        Button.IPressable onPress;
        int offsetX = (this.width - this.xSize) / 2, offsetY = (this.height - this.ySize) / 2;
        this.buttons.add(new Button(offsetX+153,offsetY+17,20,20,"start",(p_212984_1_) -> {
            this.minecraft.displayGuiScreen(this.getMinecraft().currentScreen);})
        {
            @Override
            public void onPress()
            {
                //TODO 
            }
        });

I have made a screen,I want to add a button to do something ,I used anonymous inner classes,but  whatever I write in “todo”,when I pressen the button it didn't work.Did I use the wrong method?Please help me .

Here is an example of button from IngameMenuScreen class:

this.addButton(new Button(this.width / 2 - 102, this.height / 4 + 24 + -16, 204, 20, new TranslationTextComponent("menu.returnToGame"), (p_213070_1_) -> {
         this.minecraft.displayGuiScreen((Screen)null);
         this.minecraft.mouseHelper.grabMouse();
      }));

This works for sure, find the difference.

Everything said above may be absolutely wrong. No rights reserved.

  • Author
15 hours ago, Dzuchun said:

Here is an example of button from IngameMenuScreen class:


this.addButton(new Button(this.width / 2 - 102, this.height / 4 + 24 + -16, 204, 20, new TranslationTextComponent("menu.returnToGame"), (p_213070_1_) -> {
         this.minecraft.displayGuiScreen((Screen)null);
         this.minecraft.mouseHelper.grabMouse();
      }));

This works for sure, find the difference.

Excuse me, is there a more detailed example? I don't quite understand. I often use listeners in Java, but I don't understand how this button works.

2 hours ago, Same here said:

I often use listeners in Java

Here you don't need this to execute something on button click. Listening is already handled by LWJGL (not sure), so all you need is to specify function that should be executed once button is pressed.

(p_213070_1_) -> {
  this.minecraft.displayGuiScreen((Screen)null);
  this.minecraft.mouseHelper.grabMouse(); 
}

Here is this function. This format is called lambda-expression. Check source code for more context, this code is located at IngameMenuScreen class.

Everything said above may be absolutely wrong. No rights reserved.

  • Author
15 hours ago, Dzuchun said:

Here you don't need this to execute something on button click. Listening is already handled by LWJGL (not sure), so all you need is to specify function that should be executed once button is pressed.


(p_213070_1_) -> {
  this.minecraft.displayGuiScreen((Screen)null);
  this.minecraft.mouseHelper.grabMouse(); 
}

Here is this function. This format is called lambda-expression. Check source code for more context, this code is located at IngameMenuScreen class.

My friend, thank you very much for your patience and help me a lot. I looked at the source code before, but I made a fatal mistake. I have been paying attention to lambda and have not used addbutton correctly. Thank you very much for your help.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.