簡體   English   中英

使用swing在jruby中創建gui

[英]creating gui in jruby using swing

我正在嘗試使用jruby創建gui。 我想要做的是單擊一個按鈕並在新窗口中添加一些按鈕和文本字段時打開一個新框架。

但是我的新窗口沒有顯示任何按鈕。

代碼是:

          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

這是因為您沒有向其中添加任何內容-您僅在動作偵聽器塊中定義了方法,但沒有添加任何內容到新框架中-大部分方法都已損壞,請參見注釋部分:

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

下次請在發布前嘗試格式化代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM