Question

I'm trying to create a gui using jruby. What I want to do is to open a new frame when I click a button and add some buttons and textfields to the new window.

But my new window doesn't show any buttons.

The code is:

          include Java

             import javax.swing.JButton
              import javax.swing.JFrame
              import javax.swing.JPanel
                import javax.swing.JTextArea
                import javax.swing.JScrollBar
              import javax.swing.JLabel
              import java.lang.System
              import java.awt.Font

        class Project < JFrame

        def initUI

          frame = JFrame.new "My frame"

          panel = JPanel.new
          frame.getContentPane.add panel

          panel.setLayout nil 
           panel.setToolTipText "A Panel container"

           repo = JButton.new "CREATE REPO"
    repo.setBounds 300, 60, 150, 40
    repo.setToolTipText "Create Repo "
    repo.add_action_listener do

    frame1 = JFrame.new "Hello new frame !!"
    frame.setVisible false     

     def mygui
      frame1.newint
     end

        def newint
        panel1 = JPanel.new "panel"
        frame1.getContentPane.add panel1
        panel1.setFlowLayout 

        mybutton = JButton.new "NEW BUTTON"
        mybutton.setBounds 50,30,100,30

        mybutton1 = JButton.new "button"
        mybutton1.setBounds 10,10,10,10

        panel1.add mybutton
        panel1.add mybutton1

      end

      frame1.setVisible true
      frame1.setDefaultCloseOperation JFrame::EXIT_ON_CLOSE
      frame1.setSize 500,500

    end


    afile = JButton.new "ADD FILE"
    afile.setBounds 300, 130, 150 , 40
    afile.setToolTipText "Add File"



    efile = JButton.new "EDIT FILE"
    efile.setBounds 300 , 190 , 150 , 40
    efile.setToolTipText "Edit File"

    txtarea = JTextArea.new 
    txtarea.setBounds 10, 60 , 200 , 170
    txtarea.setEditable false

    cancel = JButton.new "CANCEL"
    cancel.setBounds 110 , 250 , 300 , 50
    cancel.setToolTipText "Cancel"
    cancel.add_action_listener do 
       System.exit 0
    end

    label = JLabel.new "GIT INTEGRATED FILESYSTEM"
    label.setFont Font.new "Sans serif" , Font::PLAIN , 14
    label.setBounds 100 ,10 , 300 , 20

    panel.add repo
    panel.add afile
    panel.add efile
    panel.add txtarea
    panel.add cancel
    panel.add label

    frame.setDefaultCloseOperation JFrame::EXIT_ON_CLOSE
    frame.setSize 500, 500
    frame.setLocationRelativeTo nil
    frame.setVisible true
            end
            end
            obj = Project.new
            obj.initUI
Was it helpful?

Solution

it's cause you did not add anything to it - you simply defined methods in the action listener block but there's nothing being added to the new frame - also most of the methods are broken see the commented parts :

include Java

import javax.swing.JButton
import javax.swing.JFrame
import javax.swing.JPanel
import javax.swing.JTextArea
import javax.swing.JScrollBar
import javax.swing.JLabel
import java.lang.System
import java.awt.Font

class Project < JFrame

  def initUI

    frame = JFrame.new "My frame"

    panel = JPanel.new
    frame.getContentPane.add panel

    panel.setLayout nil 
    panel.setToolTipText "A Panel container"

    repo = JButton.new "CREATE REPO"
    repo.setBounds 300, 60, 150, 40
    repo.setToolTipText "Create Repo "

    repo.add_action_listener do
      frame1 = JFrame.new "Hello new frame !!"
      frame.setVisible false     

      #def mygui
      #  frame1.newint
      #end

      #def newint
    panel1 = JPanel.new #"panel"
    frame1.getContentPane.add panel1
    #panel1.setFlowLayout 

    mybutton = JButton.new "NEW BUTTON"
    mybutton.setBounds 50,30,100,30

    mybutton1 = JButton.new "button"
    mybutton1.setBounds 10,10,10,10

    panel1.add mybutton
    panel1.add mybutton1

      #end

      frame1.setVisible true
      frame1.setDefaultCloseOperation JFrame::EXIT_ON_CLOSE
      frame1.setSize 500,500

    end


    afile = JButton.new "ADD FILE"
    afile.setBounds 300, 130, 150 , 40
    afile.setToolTipText "Add File"


    efile = JButton.new "EDIT FILE"
    efile.setBounds 300 , 190 , 150 , 40
    efile.setToolTipText "Edit File"

    txtarea = JTextArea.new 
    txtarea.setBounds 10, 60 , 200 , 170
    txtarea.setEditable false

    cancel = JButton.new "CANCEL"
    cancel.setBounds 110 , 250 , 300 , 50
    cancel.setToolTipText "Cancel"
    cancel.add_action_listener do 
       System.exit 0
    end

    label = JLabel.new "GIT INTEGRATED FILESYSTEM"
    label.setFont Font.new "Sans serif" , Font::PLAIN , 14
    label.setBounds 100 ,10 , 300 , 20

    panel.add repo
    panel.add afile
    panel.add efile
    panel.add txtarea
    panel.add cancel
    panel.add label

    frame.setDefaultCloseOperation JFrame::EXIT_ON_CLOSE
    frame.setSize 500, 500
    frame.setLocationRelativeTo nil
    frame.setVisible true
  end
end

obj = Project.new
obj.initUI

P.S. next time please try formatting the code before posting.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top