def createGui( self ): self.jd = jd = swing.JDialog() self.jd.setName( "Leodialog" ) jd.setTitle( "Libraries" ) jdc = jd.getContentPane() self.libs = lib = swing.JList() self.libs.setName( "Autolist" ) lib.setVisibleRowCount( 5 ) view = swing.JScrollPane( lib ) jdc.add( view, awt.BorderLayout.NORTH ) create = swing.JButton( "Create" ) create.actionPerformed = self.create add = swing.JButton( "Add" ) add.actionPerformed = self.add move = swing.JButton( "Move" ) move.actionPerformed = self.move remove = swing.JButton( "Remove" ) remove.actionPerformed = self.remove _open = swing.JButton( "Open" ) _open.actionPerformed = self.open close = swing.JButton( "Close" ) close.actionPerformed = self.close topjp = swing.JPanel() topjp.setLayout( awt.GridLayout( 2, 1 ) ) jdc.add( topjp, awt.BorderLayout.SOUTH ) self.message = swing.JTextField() mp = swing.JPanel() gbl = awt.GridBagLayout() mp.setLayout( gbl ) gbc = awt.GridBagConstraints() gbc.weightx = 1.0 gbc.weighty = 1.0 gbc.fill = 1 gbl.setConstraints( self.message, gbc ) mp.add( self.message ) topjp.add( mp )# , awt.BorderLayout.NORTH ) jp = swing.JPanel() jp.setLayout( awt.GridLayout( 1, 6 ) ) jp.add( create ) jp.add( add ) jp.add( move ) jp.add( remove ) jp.add( _open ) jp.add( close ) topjp.add( jp )#, awt.BorderLayout.SOUTH )
def __init__(self): self.frame=swing.JFrame(title="My Frame", size=(300,300)) self.frame.defaultCloseOperation=swing.JFrame.EXIT_ON_CLOSE; self.frame.layout=awt.BorderLayout() self.panel1=swing.JPanel(awt.BorderLayout()) self.panel2=swing.JPanel(awt.GridLayout(4,1)) self.panel2.preferredSize = awt.Dimension(10,100) self.panel3=swing.JPanel(awt.BorderLayout()) self.title=swing.JLabel("Text Rendering") self.button1=swing.JButton("Print Text", actionPerformed=self.printMessage) self.button2=swing.JButton("Clear Text", actionPerformed=self.clearMessage) self.textField=swing.JTextField(30) self.outputText=swing.JTextArea(4,15) self.panel1.add(self.title) self.panel2.add(self.textField) self.panel2.add(self.button1) self.panel2.add(self.button2) self.panel3.add(self.outputText) self.frame.contentPane.add(self.panel1, awt.BorderLayout.PAGE_START) self.frame.contentPane.add(self.panel2, awt.BorderLayout.CENTER) self.frame.contentPane.add(self.panel3, awt.BorderLayout.PAGE_END)
def init(self, unitSets=basicUnits): self.setLayout(awt.GridLayout(2, 0, 5, 5)) self.panels = [] for name, units in unitSets: panel = ConversionPanel(name, units, self) self.panels.append(panel) self.add(panel)
def getParams(self): # GUI to get future % of subbasin redeveloped, curve number, and release rate # Initialize window for UI frame = swing.JFrame("Set conditions of redeveloped portion of subbasin", layout=awt.BorderLayout()) frame.setDefaultCloseOperation(swing.JFrame.EXIT_ON_CLOSE) # Create panel that includes three text entry fields for % redeveloped, curve number, and release rate futureparams = swing.JPanel(layout=awt.GridLayout(3,2)) inbutton = swing.JPanel() futureparams.add(swing.JLabel('Percent Redevelopment ')) rd = swing.JTextField('', 5) futureparams.add(rd) futureparams.add(swing.JLabel('Future Curve Number ')) cn = swing.JTextField('', 5) futureparams.add(cn) futureparams.add(swing.JLabel('Release Rate ')) rr = swing.JTextField('', 5) futureparams.add(rr) # Create panel for button that stores the values entered setButton = swing.JButton('Set parameters', actionPerformed=(lambda x: self.setParams(rd, cn, rr, frame))) self.setParams(rd, cn, rr, frame) # Add panels to the window and make the window visible frame.add(futureparams, awt.BorderLayout.NORTH) inbutton.add(setButton) frame.add(inbutton, awt.BorderLayout.SOUTH) # setButton.addMouseListener(awt.event.MouseListener.mouseClicked(self, self.setParams(rd, cn, rr, frame))) frame.pack()
def init(self): cb1 = awt.Checkbox('Checkbox 1') cb2 = awt.Checkbox('Checkbox 2') cb3 = awt.Checkbox('Checkbox 3', state=1) p1 = awt.Panel(layout=awt.FlowLayout()) p1.add(cb1) p1.add(cb2) p1.add(cb3) cbg = awt.CheckboxGroup() cb4 = awt.Checkbox('Checkbox 4', cbg, 0) cb5 = awt.Checkbox('Checkbox 5', cbg, 0) cb6 = awt.Checkbox('Checkbox 6', cbg, 0) p2 = awt.Panel(layout=awt.FlowLayout()) p2.add(cb4) p2.add(cb5) p2.add(cb6) self.setLayout(awt.GridLayout(0, 2)) self.add(p1) self.add(p2) self.validate()
def whatsSelectedCallback(self, event): dialog = swing.JFrame("Here's what's selected") dialog.contentPane.layout = awt.GridLayout(2, 1) dialog.contentPane.add( swing.JLabel("Selected value = " + str(self.list.selectedValue), swing.JLabel.CENTER)) dialog.contentPane.add( swing.JLabel("Selected index = " + str(self.list.selectedIndex), swing.JLabel.CENTER)) dialog.size = (400, 200) dialog.show() print "Selected value =", self.list.selectedValue, ", selected index =", self.list.selectedIndex
def __init__(self, component): swing.JPanel.__init__(self, awt.GridLayout(1, 1)) self.add(component) self.component = component self.increments = 20 self.waitperiod = 1000 / self.increments self.timer = swing.Timer(self.waitperiod, self) self.timer.start() self.image = None self.cmp_to_focus = None self.phasingIn = True self.setOpaque(True)
def friendsList(self, username): self.window = swing.JFrame(username) self.window.layout = awt.BorderLayout() statusPanel = swing.JPanel() statusPanel.layout = awt.GridLayout(4, 1) # Set status placeholder UI statusPanel.border = swing.BorderFactory.createTitledBorder("Status") buttonGroup = swing.ButtonGroup() radioButton = swing.JRadioButton("Away", actionPerformed=self.radioCallback) buttonGroup.add(radioButton) statusPanel.add(radioButton) radioButton = swing.JRadioButton("Here", actionPerformed=self.radioCallback) buttonGroup.add(radioButton) statusPanel.add(radioButton) #Wizard of Oz incoming chat request radioButton = swing.JButton("Page Boss", actionPerformed=self.callBoss) buttonGroup.add(radioButton) statusPanel.add(radioButton) statusPanel.add(self.status) #statusPanel.add(swing.JButton("Update Status", actionPerformed=self.updateStatus)) #Buddy list panel = swing.JPanel() panel.layout = awt.BorderLayout() panel.border = swing.BorderFactory.createTitledBorder("Friends Online") ##TODO: fix threading so that friends load before the window print self.friendsData self.friendsData.append('guest') print '2' self.list = swing.JList(self.friendsData) panel.add("Center", swing.JScrollPane(self.list)) launchChatButton = swing.JButton("Launch chat?", actionPerformed=self.launchChatOut) panel.add("South", launchChatButton) self.window.windowClosing = self.goodbye pane = JScrollPane() pane.getViewport().add(self.list) panel.add(pane) self.window.add("North", statusPanel) self.window.add("South", panel) self.window.pack() self.window.visible = True return self.window
def addList( self, frame ): self.lbox = swing.JList() self.lbox.setName( "Autolist" ) view = swing.JScrollPane( self.lbox ) self.lbox.setVisibleRowCount( 5 ) frame.add( view ) self.setListContents() jp = swing.JPanel() jp.setLayout( awt.GridLayout( 3, 1 ) ) frame.add( jp, awt.BorderLayout.EAST ) for z in ( ( "Insert into outline", self.insert ), ( "Remove from list" , self.delete ), ( "Add Current Node to list", self.addCurrentNode ), ): jb = swing.JButton( z[ 0 ] ) jb.actionPerformed = z[ 1 ] jp.add( jb )
######################################################################### # implement a simple calculator in Jython; evaluation runs a full # expression all at once using the Python eval() built-in--Jython's # source-code compiler is present at run-time, as in standard Python ######################################################################### from java import awt # get access to Java class libraries from pawt import swing # they look like Python modules here labels = ['0', '1', '2', '+', # labels for calculator buttons '3', '4', '5', '-', # will be used for a 4x4 grid '6', '7', '8', '*', '9', '.', '=', '/' ] keys = swing.JPanel(awt.GridLayout(4, 4)) # do Java class library magic display = swing.JTextField() # Python data auto-mapped to Java def push(event): # callback for regular keys display.replaceSelection(event.actionCommand) def enter(event): # callback for the '=' key display.text = str(eval(display.text)) # use Python eval() to run expr display.selectAll() for label in labels: # build up button widget grid key = swing.JButton(label) # on press, invoke Python funcs if label == '=': key.actionPerformed = enter else: key.actionPerformed = push keys.add(key)
def createFrame(self): gui = g.app.gui top = self.top #@ << create the organizer frames >> #@+node:zorcanda!.20050409134025.6:<< create the organizer frames >> #outer = Tk.Frame(self.frame, bd=2,relief="groove") #outer.pack(pady=4) sl = swing.SpringLayout() outer = self.top.getContentPane() #swing.JPanel() outer.setLayout(sl) #self.frame.add( outer ) #row1 = Tk.Frame(outer) #row1.pack(pady=4) row1 = swing.JPanel(awt.GridLayout(3, 4)) outer.add(row1) sl.putConstraint(sl.NORTH, row1, 5, sl.NORTH, outer) row4 = swing.JPanel() outer.add(row4) sl.putConstraint(sl.NORTH, row4, 5, sl.SOUTH, row1) sl2 = swing.SpringLayout() options = swing.JPanel( sl2) #swing.Box.createHorizontalBox() #swing.JPanel( sl2 ); outer.add(options) sl.putConstraint(sl.NORTH, options, 5, sl.SOUTH, row4) #ws = Tk.Frame(options) #ws.pack(side="left",padx=4) ws = swing.JPanel() ws.setLayout(awt.GridLayout(1, 1)) options.add(ws) sl2.putConstraint(sl2.NORTH, ws, 2, sl2.NORTH, options) sl2.putConstraint(sl2.WEST, ws, 5, sl2.WEST, options) pr = swing.JPanel() pr.setLayout(awt.GridLayout(1, 1)) options.add(pr) sl2.putConstraint(sl2.NORTH, pr, 2, sl2.NORTH, options) sl2.putConstraint(sl2.WEST, pr, 10, sl2.EAST, ws) sl2.putConstraint(sl2.SOUTH, options, 5, sl2.SOUTH, pr) sl2.putConstraint(sl2.EAST, options, 5, sl2.EAST, pr) lower = swing.JPanel() outer.add(lower) sl.putConstraint(sl.NORTH, lower, 5, sl.SOUTH, options) sl.putConstraint(sl.EAST, lower, 0, sl.EAST, options) sl.putConstraint(sl.SOUTH, outer, 5, sl.SOUTH, lower) sl.putConstraint(sl.EAST, outer, 5, sl.EAST, row1) #@-node:zorcanda!.20050409134025.6:<< create the organizer frames >> #@nl #@ << create the browser rows >> #@+node:zorcanda!.20050409134025.7:<< create the browser rows >> for row, text, text2, command, var in ((row1, "Compare path 1:", "Ignore first line", self.onBrowse1, self.ignoreFirstLine1Var), (row1, "Compare path 2:", "Ignore first line", self.onBrowse2, self.ignoreFirstLine2Var), (row1, "Output file:", "Use output file", self.onBrowse3, self.useOutputFileVar)): #lab = Tk.Label(row,anchor="e",text=text,width=13) #lab.pack(side="left",padx=4) lab = swing.JLabel(text) row.add(lab) #e = Tk.Entry(row) #e.pack(side="left",padx=2) e = swing.JTextField(15) row.add(e) self.browseEntries.append(e) #b = Tk.Button(row,text="browse...",command=command) #b.pack(side="left",padx=6) b = swing.JButton("browse...") b.actionPerformed = lambda event, command=command: command() row.add(b) #b = Tk.Checkbutton(row,text=text2,anchor="w",variable=var,width=15) #b.pack(side="left") b = swing.JCheckBox(text2) b.actionPerformed = lambda event, b=b, var=var: var.set(b.getModel( ).isSelected()) row.add(b) #@nonl #@-node:zorcanda!.20050409134025.7:<< create the browser rows >> #@nl #@ << create the extension row >> #@+node:zorcanda!.20050409134025.8:<< create the extension row >> #b = Tk.Checkbutton(row4,anchor="w",var=self.limitToExtensionVar, # text="Limit directory compares to type:") #b.pack(side="left",padx=4) b = swing.JCheckBox("Limit directory compares to type:") b.actionPerformed = lambda event, b=b, var=self.limitToExtensionVar: var.set( b.getModel().isSelected()) row4.add(b) #self.extensionEntry = e = Tk.Entry(row4,width=6) #e.pack(side="left",padx=2) self.extensionEntry = e = swing.JTextField(5) row4.add(e) #b = Tk.Checkbutton(row4,anchor="w",var=self.appendOutputVar, # text="Append output to output file") #b.pack(side="left",padx=4) b = swing.JCheckBox("Append output to outputfile") b.actionPerformed = lambda event, b=b, var=self.appendOutputVar: var.set( b.getModel().isSelected()) row4.add(b) #@-node:zorcanda!.20050409134025.8:<< create the extension row >> #@nl #@ << create the whitespace options frame >> #@+node:zorcanda!.20050409134025.9:<< create the whitespace options frame >> w, f = gui.create_labeled_frame(ws, caption="Whitespace options", relief="groove") f.setLayout(awt.GridLayout(5, 1)) for text, var in (("Ignore Leo sentinel lines", self.ignoreSentinelLinesVar), ("Ignore blank lines", self.ignoreBlankLinesVar), ("Ignore leading whitespace", self.ignoreLeadingWhitespaceVar), ("Ignore interior whitespace", self.ignoreInteriorWhitespaceVar), ("Make whitespace visible", self.makeWhitespaceVisibleVar)): #b = Tk.Checkbutton(f,text=text,variable=var) #b.pack(side="top",anchor="w") b = swing.JCheckBox(text) b.actionPerformed = lambda event, b=b, var=var: var.set(b.getModel( ).isSelected()) f.add(b) #@-node:zorcanda!.20050409134025.9:<< create the whitespace options frame >> #@nl #@ << create the print options frame >> #@+node:zorcanda!.20050409134025.10:<< create the print options frame >> w, f = gui.create_labeled_frame(pr, caption="Print options", relief="groove") f.setLayout(awt.GridLayout(5, 1)) #row = Tk.Frame(f) #row.pack(expand=1,fill="x") row = swing.JPanel() sl3 = swing.SpringLayout() row.setLayout(sl3) f.add(row) pwidth = 0 #b = Tk.Checkbutton(row,text="Stop after",variable=self.stopAfterMismatchVar) #b.pack(side="left",anchor="w") b = swing.JCheckBox("Stop after") b.actionPerformed = lambda event, var=self.stopAfterMismatchVar, b=b: var.set( b.getModel().isSelected()) row.add(b) sl3.putConstraint(sl3.NORTH, b, 1, sl3.NORTH, row) sl3.putConstraint(sl3.WEST, b, 1, sl3.WEST, row) #self.countEntry = e = Tk.Entry(row,width=4) #e.pack(side="left",padx=2) #e.insert(01,"1") self.countEntry = e = swing.JTextField(5) row.add(e) sl3.putConstraint(sl3.NORTH, e, 1, sl3.NORTH, row) sl3.putConstraint(sl3.WEST, e, 1, sl3.EAST, b) #lab = Tk.Label(row,text="mismatches") #lab.pack(side="left",padx=2) lab = swing.JLabel("mismatches") row.add(lab) sl3.putConstraint(sl3.NORTH, lab, 1, sl3.NORTH, row) sl3.putConstraint(sl3.WEST, lab, 1, sl3.EAST, e) sl3.putConstraint(sl3.SOUTH, row, 1, sl3.SOUTH, e) sl3.putConstraint(sl3.EAST, row, 1, sl3.EAST, lab) for padx, text, var in ((0, "Print matched lines", self.printMatchesVar), (20, "Show both matching lines", self.printBothMatchesVar), (0, "Print mismatched lines", self.printMismatchesVar), (0, "Print unmatched trailing lines", self.printTrailingMismatchesVar)): #b = Tk.Checkbutton(f,text=text,variable=var) #b.pack(side="top",anchor="w",padx=padx) b = swing.JCheckBox(text) b.actionPerformed = lambda event, b=b, var=var: var.set(b.getModel( ).isSelected()) f.add(b) self.printButtons.append(b) # To enable or disable the "Print both matching lines" button. b = self.printButtons[0] #b.configure(command=self.onPrintMatchedLines) #spacer = Tk.Frame(f) #spacer.pack(padx="1i") #@nonl #@-node:zorcanda!.20050409134025.10:<< create the print options frame >> #@nl #@ << create the compare buttons >> #@+node:zorcanda!.20050409134025.11:<< create the compare buttons >> for text, command in (("Compare files", self.onCompareFiles), ("Compare directories", self.onCompareDirectories)): #b = Tk.Button(lower,text=text,command=command,width=18) #b.pack(side="left",padx=6) b = swing.JButton(text) b.actionPerformed = lambda event, command=command: command() lower.add(b) #@-node:zorcanda!.20050409134025.11:<< create the compare buttons >> #@nl top.pack() gui.center_dialog(top) # Do this _after_ building the dialog! self.finishCreate()
def createNodeSearchFrame( self, clnpanel ): clnpanel.setLayout( awt.BorderLayout() ) oclnpanel = clnpanel clnpanel = swing.Box.createHorizontalBox() oclnpanel.add( clnpanel, awt.BorderLayout.CENTER ) jta = swing.JTextArea() self.CutCopyPaste( jta ) tp = swing.JPanel( awt.GridLayout( 1, 1 )) self.nstext = jta sp = swing.JScrollPane( jta ) border = sp.getBorder() tborder = sborder.TitledBorder( border ) tborder.setTitle( "Base Text" ) sp.setBorder( tborder ) tp.add( sp ) clnpanel.add( tp ) bpanel = swing.JPanel() spl = swing.SpringLayout() bpanel.setLayout( spl ) executebox = swing.Box.createHorizontalBox() border = executebox.getBorder() tborder = sborder.TitledBorder( border ) tborder.setTitle( "Searching" ) executebox.setBorder( tborder ) bpanel.add( executebox ) spl.putConstraint( spl.NORTH, executebox, 5, spl.NORTH, bpanel ) clnsearch = swing.JButton( "Clone Search" ) clnsearch.actionPerformed = self.nodeSearch executebox.add( clnsearch ) #spl.putConstraint( spl.NORTH, clnsearch, 5, spl.NORTH, bpanel ) cpysearch = swing.JButton( "Copy Search" ) cpysearch.actionPerformed = lambda event: self.nodeSearch( event, type='copy' ) #bpanel.add( cpysearch ) #spl.putConstraint( spl.NORTH, cpysearch, 5, spl.SOUTH, clnsearch ) executebox.add( cpysearch ) self.all_searches = rb1 = swing.JCheckBox( "Match Searches" ) mtext = """Selecting causes the search system to only recognize a node if all searches match""" rb1.setToolTipText( mtext ) bpanel.add( rb1 ) spl.putConstraint( spl.NORTH, rb1, 5, spl.NORTH, bpanel ) spl.putConstraint( spl.WEST, rb1, 5, spl.EAST, executebox ) self.all_filters = rb2 = swing.JCheckBox( "Match Filters" ) mtext = """Selecting causes the filter system to only filter out a node if all searches match""" rb2.setToolTipText( mtext ) bpanel.add( rb2 ) spl.putConstraint( spl.NORTH, rb2, 5, spl.SOUTH, rb1 ) spl.putConstraint( spl.WEST, rb2, 5, spl.EAST, executebox ) spl2 = swing.SpringLayout() sandf = swing.JPanel( spl2 ) sandf.setPreferredSize( awt.Dimension( 275, 85 ) ) border = sandf.getBorder() tborder = sborder.TitledBorder( border ) tborder.setTitle( "Derive Searches and Filters" ) sandf.setBorder( tborder ) bpanel.add( sandf ) spl.putConstraint( spl.NORTH, sandf, 5, spl.SOUTH, executebox ) b1 = swing.JButton( "+ as Search" ) b1.setActionCommand( "search" ) b1.actionPerformed = self.addAsSearchOrExclude b2 = swing.JButton( "+ as Filter" ) b2.setActionCommand( "filter" ) b2.actionPerformed = self.addAsSearchOrExclude sandf.add( b1 ); sandf.add( b2 ) spl2.putConstraint( spl2.NORTH, b1, 5, spl2.NORTH, executebox ) spl2.putConstraint( spl2.NORTH, b2, 5, spl2.SOUTH, b1 ) b3 = swing.JButton( "+ as Regex-Search" ) b3.setActionCommand( "regex-search" ) b3.actionPerformed = self.addAsSearchOrExclude sandf.add( b3 ) spl2.putConstraint( spl2.NORTH, b3,5, spl2.NORTH, executebox ) spl2.putConstraint( spl2.WEST, b3,5, spl2.EAST, b1 ) #spl2.putConstraint( spl2.EAST, b3, 5, spl2.EAST, executebox ) b4 = swing.JButton( "+ as Regex-Filter" ) b4.setActionCommand( "regex-filter" ) b4.actionPerformed = self.addAsSearchOrExclude sandf.add( b4 ) spl2.putConstraint( spl2.NORTH, b4, 5, spl2.SOUTH, b1 ) spl2.putConstraint( spl2.WEST, b4, 5, spl2.EAST, b2 ) clear = swing.JButton( "Clear Text" ) def clear_txt( event, text = jta ): jta.setText( "" ) clear.actionPerformed = clear_txt bpanel.add( clear ) spl.putConstraint( spl.NORTH, clear, 5, spl.SOUTH, sandf ) clnpanel.add( bpanel ) tp.setPreferredSize( awt.Dimension( 200, 100 ) ) clnpanel.setPreferredSize( awt.Dimension( 200, 100 )) class dtm2( stable.DefaultTableModel ): def __int__( self ): stable.DefaultTableModel.__init__( self ) def isCellEditable( self, a, b ): if b == 1: return False return True self.dtm = dtm = dtm2() dtm.addColumn( "Text" ) dtm.addColumn( "Type" ) jp = swing.JPanel( awt.BorderLayout() ) self.table = jt = swing.JTable( dtm ) jt.getColumn( "Text" ).setCellEditor( self._LeoTableCellEditor() ) jt.getColumn( "Text" ).setCellRenderer( self._LeoTableCellRenderer() ) rmv = swing.JButton( "Remove" ) def rmv_row( event, jt = jt, dtm = dtm ): row = jt.getSelectedRow() if row != -1: dtm.removeRow( row ) rmv.actionPerformed = rmv_row rmva = swing.JButton( "Clear" ) def rmv_all( event, jt = jt, dtm = dtm ): rc = dtm.getRowCount() for z in xrange( rc ): dtm.removeRow( 0 ) rmva.actionPerformed = rmv_all rmvp = swing.Box.createVerticalBox() rmvp.add( rmv ) rmvp.add( rmva ) jp.add( rmvp, awt.BorderLayout.EAST ) jtsp = swing.JScrollPane( jt ) border = jtsp.getBorder() tborder = sborder.TitledBorder( border ) tborder.setTitle( "Searchers and Filters" ) jtsp.setBorder( tborder ) jp.add( jtsp ) jp.setPreferredSize( clnpanel.getPreferredSize() ) oclnpanel.add( jp, awt.BorderLayout.SOUTH )
def __init__(self, controller): self.background = awt.Color.lightGray self.setLayout(awt.GridLayout(1, 0)) self.add(CoordinateArea(controller))
def thingChangedAttr(self, key=None, val=None): if self.thing != None: for k in self.thing.getKeys(): if k == 'isPlayer': continue if k == 'name': if key == None or key == k: self.border = swing.BorderFactory.createTitledBorder( self.thing.get(k)) continue if k in self.attrs.keys(): if k != key: continue else: p = self.attrs[k] p.removeAll() else: p = swing.JPanel(layout=awt.GridLayout(1, 2)) self.attrBox.add(p) self.attrs[k] = p v = self.thing.get(k) if k in self.thing.editable.keys(): if isinstance(v, Thing): c = swing.JButton(v.get('name')) c.actionPerformed = lambda event, key=k, self=self: self.startChoosingTarget( key) self.attrButtons[k] = c l = swing.JLabel(k) p.add(l) p.add(c) elif v == None and len(self.thing.editable[k]) == 0: c = swing.JButton('Select %s' % k) if v != None: c.text = v.name c.actionPerformed = lambda event, key=k, self=self: self.startChoosingTarget( key) self.attrButtons[k] = c p.layout = awt.GridLayout(1, 1) p.add(c) else: c = swing.JComboBox() for o in self.thing.editable[k]: c.addItem(o) c.selectedItem = v c.itemStateChanged = lambda event, key=k, self=self: self.onStateChange( event, key) l = swing.JLabel(k) p.add(l) p.add(c) else: if isinstance(v, Thing): v = v.get('name') if type(v) == type(1): v = "%d" % v if type(v) == type(1.0): v = "%3.2f" % v c = swing.JLabel(v) l = swing.JLabel(k) p.add(l) p.add(c) self.validate()
def createFrame (self): # Create the find panel... #outer = Tk.Frame(self.frame,relief="groove",bd=2) #outer.pack(padx=2,pady=2) self.top = swing.JFrame() g.app.gui.addLAFListener( self.top ) #self.top.setDefaultCloseOperation( swing.JFrame.EXIT_ON_CLOSE ) self.top.title = self.title jtab = swing.JTabbedPane() self.top.add( jtab ) cpane = swing.JPanel() jtab.addTab( "regular search", cpane ) clnsearch = swing.JPanel() clnsearch.setName( "Leodialog" ) jtab.addTab( "node search", clnsearch ) #cpane = outer.getContentPane() cpane.setName( "Leodialog" ) cpane.setLayout( awt.GridLayout( 3, 1 ) ) #@ << Create the Find and Change panes >> #@+node:mork.20050127121143.6:<< Create the Find and Change panes >> #fc = Tk.Frame(outer, bd="1m") #fc.pack(anchor="n", fill="x", expand=1) findPanel = self.findPanel = swing.JTextArea() self.CutCopyPaste( findPanel ) fspane = swing.JScrollPane( findPanel ) self.changePanel = changePanel = swing.JTextArea() self.CutCopyPaste( changePanel ) cpane2 = swing.JScrollPane( changePanel ) splitpane = swing.JSplitPane( swing.JSplitPane.VERTICAL_SPLIT, fspane, cpane2 ) splitpane.setDividerLocation( .5 ) #outer.getContentPane().add( splitpane ) cpane.add( splitpane ) #outer.pack() # Removed unused height/width params: using fractions causes problems in some locales! #fpane = Tk.Frame(fc, bd=1) #cpane = Tk.Frame(fc, bd=1) #fpane.pack(anchor="n", expand=1, fill="x") #cpane.pack(anchor="s", expand=1, fill="x") # Create the labels and text fields... #flab = Tk.Label(fpane, width=8, text="Find:") #clab = Tk.Label(cpane, width=8, text="Change:") # Use bigger boxes for scripts. #self.find_text = ftxt = Tk.Text(fpane,bd=1,relief="groove",height=4,width=20) #3self.change_text = ctxt = Tk.Text(cpane,bd=1,relief="groove",height=4,width=20) #fBar = Tk.Scrollbar(fpane,name='findBar') #cBar = Tk.Scrollbar(cpane,name='changeBar') # Add scrollbars. #for bar,txt in ((fBar,ftxt),(cBar,ctxt)): # txt['yscrollcommand'] = bar.set # bar['command'] = txt.yview # bar.pack(side="right", fill="y") #flab.pack(side="left") #clab.pack(side="left") #ctxt.pack(side="right", expand=1, fill="both") #ftxt.pack(side="right", expand=1, fill="both") #@nonl #@-node:mork.20050127121143.6:<< Create the Find and Change panes >> #@nl #@ << Create four columns of radio and checkboxes >> #@+node:mork.20050127121143.7:<< Create four columns of radio and checkboxes >> #columnsFrame = Tk.Frame(outer,relief="groove",bd=2) #columnsFrame.pack(anchor="e",expand=1,padx="7p",pady="2p") # Don't fill. columnsFrame = swing.JPanel() columnsFrame.setLayout( swing.BoxLayout( columnsFrame, swing.BoxLayout.X_AXIS ) ) cpane.add( columnsFrame, awt.BorderLayout.SOUTH ) numberOfColumns = 4 # Number of columns columns = [] ; radioLists = [] ; checkLists = []; buttonGroups = [] for i in xrange(numberOfColumns): #columns.append(Tk.Frame(columnsFrame,bd=1)) jp = swing.JPanel() jp.setLayout( swing.BoxLayout( jp, swing.BoxLayout.Y_AXIS ) ) columns.append( jp ) radioLists.append([]) checkLists.append([]) buttonGroups.append( swing.ButtonGroup() ) for i in xrange(numberOfColumns): columnsFrame.add( columns[ i ] ) #columns[i].pack(side="left",padx="1p") # fill="y" Aligns to top. padx expands columns. radioLists[0] = [ (self.dict["radio-find-type"],"Plain Search","plain-search"), (self.dict["radio-find-type"],"Pattern Match Search","pattern-search"), (self.dict["radio-find-type"],"Script Search","script-search")] checkLists[0] = [ ("Script Change",self.dict["script_change"])] checkLists[1] = [ ("Whole Word", self.dict["whole_word"]), ("Ignore Case", self.dict["ignore_case"]), ("Wrap Around", self.dict["wrap"]), ("Reverse", self.dict["reverse"])] radioLists[2] = [ (self.dict["radio-search-scope"],"Entire Outline","entire-outine"), (self.dict["radio-search-scope"],"Suboutline Only","suboutline-only"), (self.dict["radio-search-scope"],"Node Only","node-only"), # I don't know what selection-only is supposed to do. (self.dict["radio-search-scope"],"Selection Only","selection-only")] checkLists[2] = [] checkLists[3] = [ ("Search Headline Text", self.dict["search_headline"]), ("Search Body Text", self.dict["search_body"]), ("Mark Finds", self.dict["mark_finds"]), ("Mark Changes", self.dict["mark_changes"])] class rAction( swing.AbstractAction ): def __init__( self, name, var , val ): swing.AbstractAction.__init__( self, name ) self.name = name self.var = var self.val = val def actionPerformed( self, aE ): self.var.set( self.val ) class jcbAction( swing.AbstractAction ): def __init__( self, name, var ): swing.AbstractAction.__init__( self, name ) self.var = var def actionPerformed( self, ae ): val = self.var.get() if val: self.var.set( 0 ) else: self.var.set( 1 ) for i in xrange(numberOfColumns): for var,name,val in radioLists[i]: aa = rAction( name, var, val ) but = swing.JRadioButton( aa ) columns[ i ].add( but ) buttonGroups[ i ].add( but ) #box = Tk.Radiobutton(columns[i],anchor="w",text=name,variable=var,value=val) #box.pack(fill="x") #box.bind("<1>", self.resetWrap) #if val == None: box.configure(state="disabled") for name, var in checkLists[i]: cbut = swing.JCheckBox( jcbAction( name, var ) ) columns[ i ].add( cbut ) #box = Tk.Checkbutton(columns[i],anchor="w",text=name,variable=var) #box.pack(fill="x") #box.bind("<1>", self.resetWrap) #if var is None: box.configure(state="disabled") for z in buttonGroups: elements = z.getElements() for x in elements: x.setSelected( True ) break #@-node:mork.20050127121143.7:<< Create four columns of radio and checkboxes >> #@nl #@ << Create two rows of buttons >> #@+node:mork.20050127121143.8:<< Create two rows of buttons >> # Create the button panes secondGroup = swing.JPanel() secondGroup.setLayout( awt.GridLayout( 2, 3 , 10, 10 ) ) cpane.add( secondGroup ) #buttons = Tk.Frame(outer,bd=1) #buttons2 = Tk.Frame(outer,bd=1) #buttons.pack (anchor="n",expand=1,fill="x") #buttons2.pack(anchor="n",expand=1,fill="x") class commandAA( swing.AbstractAction ): def __init__( self, name, command ): swing.AbstractAction.__init__( self, name ) self.command = command def actionPerformed( self, aE ): self.command() # Create the first row of buttons #findButton=Tk.Button(buttons,width=8,text="Find",bd=4,command=self.findButton) # The default. #contextBox=Tk.Checkbutton(buttons,anchor="w",text="Show Context",variable=self.dict["batch"]) #findAllButton=Tk.Button(buttons,width=8,text="Find All",command=self.findAllButton) findButton = swing.JButton( commandAA( "Find", self.findButton ) ) contextBox = swing.JCheckBox( "Show Context" ) findAllButton = swing.JButton( commandAA( "Find All", self.findAllButton ) ) secondGroup.add( findButton ) secondGroup.add( contextBox ) secondGroup.add( findAllButton ) #findButton.pack (pady="1p",padx="25p",side="left") #contextBox.pack (pady="1p", side="left",expand=1) #findAllButton.pack(pady="1p",padx="25p",side="right",fill="x",) # Create the second row of buttons #changeButton =Tk.Button(buttons2,width=8,text="Change",command=self.changeButton) #changeFindButton=Tk.Button(buttons2, text="Change, Then Find",command=self.changeThenFindButton) #changeAllButton =Tk.Button(buttons2,width=8,text="Change All",command=self.changeAllButton) changeButton = swing.JButton( commandAA( "Change", self.changeButton ) ) changeFindButton = swing.JButton( commandAA( "Change, Then Find", self.changeThenFindButton ) ) changeAllButton = swing.JButton( commandAA( "Change All", self.changeAllButton ) ) secondGroup.add( changeButton ) secondGroup.add( changeFindButton ) secondGroup.add( changeAllButton ) #changeButton.pack (pady="1p",padx="25p",side="left") #changeFindButton.pack(pady="1p", side="left",expand=1) #changeAllButton.pack (pady="1p",padx="25p",side="right") #@nonl #@-node:mork.20050127121143.8:<< Create two rows of buttons >> #@nl self.createNodeSearchFrame( clnsearch ) #self.top.setSize( 500, 500 ) self.top.pack() size = self.top.getSize() size.width = size.width + 50 self.top.setSize( size ) splitpane.setDividerLocation( .5 )
def __init__(self): ######################################################### # # set up the overall frame (the window itself) # self.window = swing.JFrame("Swing Sampler!") self.window.windowClosing = self.goodbye self.window.contentPane.layout = awt.BorderLayout() ######################################################### # # under this will be a tabbed pane; each tab is named # and contains a panel with other stuff in it. # tabbedPane = swing.JTabbedPane() self.window.contentPane.add("Center", tabbedPane) ######################################################### # # The first tabbed panel will be named "Some Basic # Widgets", and is referenced by variable 'firstTab' # firstTab = swing.JPanel() firstTab.layout = awt.BorderLayout() tabbedPane.addTab("Some Basic Widgets", firstTab) # # slap in some labels, a list, a text field, etc... Some # of these are contained in their own panels for # layout purposes. # tmpPanel = swing.JPanel() tmpPanel.layout = awt.GridLayout(3, 1) tmpPanel.border = swing.BorderFactory.createTitledBorder( "Labels are simple") tmpPanel.add(swing.JLabel("I am a label. I am quite boring.")) tmpPanel.add( swing.JLabel( "<HTML><FONT COLOR='blue'>HTML <B>labels</B></FONT> are <I>somewhat</I> <U>less boring</U>.</HTML>" )) tmpPanel.add( swing.JLabel("Labels can also be aligned", swing.JLabel.RIGHT)) firstTab.add(tmpPanel, "North") # # Notice that the variable "tmpPanel" gets reused here. # This next line creates a new panel, but we reuse the # "tmpPanel" name to refer to it. The panel that # tmpPanel used to refer to still exists, but we no # longer have a way to name it (but that's ok, since # we don't need to refer to it any more). # tmpPanel = swing.JPanel() tmpPanel.layout = awt.BorderLayout() tmpPanel.border = swing.BorderFactory.createTitledBorder( "Tasty tasty lists") # # Note that here we stash a reference to the list in # "self.list". This puts it in the scope of the object, # rather than this function. This is because we'll be # referring to it later from outside this function, so # it needs to be "bumped up a level." # listData = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ] self.list = swing.JList(listData) tmpPanel.add("Center", swing.JScrollPane(self.list)) button = swing.JButton("What's Selected?") button.actionPerformed = self.whatsSelectedCallback tmpPanel.add("East", button) firstTab.add("Center", tmpPanel) tmpPanel = swing.JPanel() tmpPanel.layout = awt.BorderLayout() # # The text field also goes in self, since the callback # that displays the contents will need to get at it. # # Also note that because the callback is a function inside # the SwingSampler object, you refer to it through self. # (The callback could potentially be outside the object, # as a top-level function. In that case you wouldn't # use the 'self' selector; any variables that it uses # would have to be in the global scope. # self.field = swing.JTextField() tmpPanel.add(self.field) tmpPanel.add( swing.JButton("Click Me", actionPerformed=self.clickMeCallback), "East") firstTab.add(tmpPanel, "South") ######################################################### # # The second tabbed panel is next... This shows # how to build a basic web browser in about 20 lines. # secondTab = swing.JPanel() secondTab.layout = awt.BorderLayout() tabbedPane.addTab("HTML Fanciness", secondTab) tmpPanel = swing.JPanel() tmpPanel.add(swing.JLabel("Go to:")) self.urlField = swing.JTextField(40, actionPerformed=self.goToCallback) tmpPanel.add(self.urlField) tmpPanel.add(swing.JButton("Go!", actionPerformed=self.goToCallback)) secondTab.add(tmpPanel, "North") self.htmlPane = swing.JEditorPane("http://www.google.com", editable=0, hyperlinkUpdate=self.followHyperlink, preferredSize=(400, 400)) secondTab.add(swing.JScrollPane(self.htmlPane), "Center") self.statusLine = swing.JLabel("(status line)") secondTab.add(self.statusLine, "South") ######################################################### # # The third tabbed panel is next... # thirdTab = swing.JPanel() tabbedPane.addTab("Other Widgets", thirdTab) imageLabel = swing.JLabel( swing.ImageIcon( net.URL("http://www.gatech.edu/images/logo-gatech.gif"))) imageLabel.toolTipText = "Labels can have images! Every widget can have a tooltip!" thirdTab.add(imageLabel) tmpPanel = swing.JPanel() tmpPanel.layout = awt.GridLayout(3, 2) tmpPanel.border = swing.BorderFactory.createTitledBorder( "Travel Checklist") tmpPanel.add( swing.JCheckBox("Umbrella", actionPerformed=self.checkCallback)) tmpPanel.add( swing.JCheckBox("Rain coat", actionPerformed=self.checkCallback)) tmpPanel.add( swing.JCheckBox("Passport", actionPerformed=self.checkCallback)) tmpPanel.add( swing.JCheckBox("Airline tickets", actionPerformed=self.checkCallback)) tmpPanel.add( swing.JCheckBox("iPod", actionPerformed=self.checkCallback)) tmpPanel.add( swing.JCheckBox("Laptop", actionPerformed=self.checkCallback)) thirdTab.add(tmpPanel) tmpPanel = swing.JPanel() tmpPanel.layout = awt.GridLayout(4, 1) tmpPanel.border = swing.BorderFactory.createTitledBorder("My Pets") # # A ButtonGroup is used to indicate which radio buttons # go together. # buttonGroup = swing.ButtonGroup() radioButton = swing.JRadioButton("Dog", actionPerformed=self.radioCallback) buttonGroup.add(radioButton) tmpPanel.add(radioButton) radioButton = swing.JRadioButton("Cat", actionPerformed=self.radioCallback) buttonGroup.add(radioButton) tmpPanel.add(radioButton) radioButton = swing.JRadioButton("Pig", actionPerformed=self.radioCallback) buttonGroup.add(radioButton) tmpPanel.add(radioButton) radioButton = swing.JRadioButton("Capybara", actionPerformed=self.radioCallback) buttonGroup.add(radioButton) tmpPanel.add(radioButton) thirdTab.add(tmpPanel) self.window.pack() self.window.show()
import java.awt as awt import sys if __name__ == "__main__": if len(sys.argv) > 1: uim = swing.UIManager nlf = uim.getSystemLookAndFeelClassName() uim.setLookAndFeel(nlf) else: pass jf = swing.JFrame() cp1 = jf.contentPane cp1.setBackground(awt.Color.RED) cp = swing.JPanel(awt.GridLayout(2, 2)) cp.setOpaque(0) cp1.add(cp) jt = swing.JTree() jt.setOpaque(0) cp.add(jt) jta = swing.JTextArea() jta.setText("JTextArea") jta.setOpaque(0) cp.add(jta) jtp = swing.JTextPane() jtp.setText("JTextPane") jtp.setOpaque(0) cp.add(jtp) jb = swing.JButton("See Me") jb.setOpaque(0)
def doMath(e): n1 = getField(f1) n2 = getField(f2) sum.setText(repr(n1 + n2)) diff.setText(repr(n1 - n2)) prod.setText(repr(n1 * n2)) quo.setText(repr(n1 / n2)) f = awt.Frame('BSH Calculator (jpython)', windowClosing=exit) f1 = awt.TextField(20, actionPerformed=doMath) f2 = awt.TextField(20, textValueChanged=doMath) p = awt.Panel() p.setLayout(awt.GridLayout(2, 2)) p.add(awt.Label('Enter Operand')) p.add(f1) p.add(awt.Label('Enter Operand')) p.add(f2) f.add('North', p) f.add("Center", awt.Label('Results:')) p = awt.Panel() p.setLayout(awt.GridLayout(4, 2)) p.add(awt.Label('Sum')) sum = awt.TextField(20) p.add(sum) p.add(awt.Label('Difference'))
try: xBeta[:] = [] #Makes those empty lists so they are ready to hold new yBeta[:] = [] #data elements[:] = [] setUp() plot.removeAllGraphData() #To get rid of previous plots plotAns() filler.removeAll() #Removes previous table makeTable() #Adds the new table except ValueError: error.text = "Make sure all of the magnet displays are displaying numbers before plotting." #Putting stuff on panels----------------------------------------------------- buttons = swing.JPanel(awt.GridLayout(3, 2, 1, 10)) for label in labels: #Adding most of the buttons key = swing.JButton(label) if label == 'clear x': key.actionPerformed = clrx if label == 'clear y': key.actionPerformed = clry if label == 'clear results': key.actionPerformed = clrr if label == 'clear all': key.actionPerformed = clra if label == 'clear energy': key.actionPerformed = clre if label == 'calculate': key.actionPerformed = calc