JavaTutorial #11 : How to create Delegating SP aplication using java Netbeans IDE

in #utopian-io6 years ago

Repository

https://github.com/dmlloyd/openjdk

What Will I Learn?

  • You will learn about steemconnect link for delegating SP
  • You will learn how to create form for this aplication
  • You will learn how to combine data from the form in steemconnect link

Requirements

  • NetBeans IDE Software
  • Basic Knowledge about Java Programing and Netbeans

Difficulty

  • Basic

Tutorial Contents

Here, I will try to create an aplication for delegating SP to another user using java Netbeans IDE. This aplication contains a form to input the destination and number of SP to be delegated. When user press the delegate button, a new window will appear where the user is that required to login using steemconnect. For more details, you can see in the picture below.


Create a form
  • open Netbeans IDE software then create new project

  • Add new JFrame Form

  • Add JLabel, JTextField, JButton like following screenshot

Edit Source Code
  • Double click on button in form design

  • add some method, here I use delegate() method.

  • Left Click on hint simbol then double click on create method "delegate"

  • go to delegate() method

Adding code to delegate() method
  • Create 2 string variables to accomodate destination and amount delegation from user input.
String receiveUser=user.getText();
String sp=amount.getText();

getText() is a method to get text from user input. Data that taken using getText() mehtod are in String form

  • Add a code to open new JFrame Form for opening steemconnect login
        final JFrame frame=new JFrame();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setSize(1280,720);

frame the variable name for new JFrame. setDefaultCloseOperation is method to set the the exit button on right-top corner. setSize() is method to set the width and height of the new frame

Note : before adding the code above, you need to import package javax.swing.JFrame;

  • Initialize new JFX panel to open the mini browser
        final JFXPanel fxpanel=new JFXPanel();
        frame.add(fxpanel);
  • Then add following code under it
        Platform.runLater(new Runnable(){
            @Override
            public void run() {
                WebEngine engine;
                WebView wv =new WebView();
                engine=wv.getEngine();
                fxpanel.setScene(new Scene(wv));
                engine.load("https://steemconnect.com/sign/delegateVestingShares?delegator=&delegatee="+receiveUser+"&vesting_shares="+sp+"%20SP");         
            }
        });
        frame.setVisible(true);

Platform.runLater is method to run some task on JFXpanel
@Override to implement all abstract method
public void run() is run method.
WebEngine engine; Inisialize web engine
WebView wv =new WebView(); inssialize web view
engine=wv.getEngine();get view from web engine
fxpanel.setScene(new Scene(wv));set scene on JFXpanel
engine.load("https://steemconnect.com/sign/delegateVestingShares?delegator=&delegatee="+receiveUser+"&vesting_shares="+sp+"%20SP"); load the url

Modify Steemconnect URL
  • Here we need steemconnect URL, and this url we need to modify. steemconnect URL for delegating steem power : https://steemconnect.com/sign/delegateVestingShares?delegator=&delegatee=[UserDestination]&vesting_shares=0%[amount]SP

  • We modify [UserDestination] and [amount] as variable that get data from user input. So the RL become like this : "https://steemconnect.com/sign/delegateVestingShares?delegator=&delegatee="+receiveUser+"&vesting_shares="+sp+"%20SP"

Running aplication

Save the project and Click the play button to run the project


Curriculum

Proof of Work Done

https://gist.github.com/team2dev/cad5b352ce9d51725d83008e91b72ebc

Sort:  

Thank you for your contribution @team2dev.
We've been reviewing your contribution and suggested the following improvements to your upcoming tutorials:

  • Always put comments in your code, it helps readers to better understand your code.
  • Please improve your language when writing the tutorial.
  • Code sections are better displayed using the code markup, instead of placing them as screenshots.
  • Your tutorial is quite short for a good tutorial. We recommend you aim for capturing at least 2-3 concepts.
  • Placing lots of pictures sometimes does not help much, if you had a small video demonstrating the application would look interesting.

Thanks for your work on developing this tutorial. I hope the next tutorial follows our suggestions.

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

Thank you for your review, @portugalcoin!

So far this week you've reviewed 8 contributions. Keep up the good work!

Hi @team2dev!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server

Hey, @team2dev!

Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

Coin Marketplace

STEEM 0.30
TRX 0.12
JST 0.034
BTC 63815.31
ETH 3124.40
USDT 1.00
SBD 3.99