首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

JTabbedPane(3)

/* * TabbedPaneDemo.java requires one additional file: *   p_w_picpaths/middle.gif. */ import javax.swing.JTabbedPane; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JFrame; import javax.swing.JComponent; import javax.swing.SwingUtilities; import javax.swing.UIManager; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.KeyEvent; import javax.swing.JButton; public class TabbedPaneDemo extends JPanel {     public TabbedPaneDemo() {         super(new GridLayout(1, 1)); //        super(); JTabbedPane tabbedPane = new JTabbedPane();         ImageIcon icon = createImageIcon("p_w_picpaths/middle.gif");         JComponent panel1 = makeTextPanel("Panel #1","标签1");//增加一个选项卡         tabbedPane.addTab("Tab 1", icon, panel1,                 "Does nothing");         tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);         JComponent panel2 = makeTextPanel("Panel #2","标签2");         tabbedPane.addTab("Tab 2", icon, panel2,                 "Does twice as much nothing");         tabbedPane.setMnemonicAt(1, KeyEvent.VK_2);         JComponent panel3 = makeTextPanel("Panel #3","标签3");         tabbedPane.addTab("Tab 3", icon, panel3,                 "Still does nothing");         tabbedPane.setMnemonicAt(2, KeyEvent.VK_3);         JComponent panel4 = makeTextPanel(                 "Panel #4 (has a preferred size of 410 x 50).","标签4");         panel4.setPreferredSize(new Dimension(410, 50));         tabbedPane.addTab("Tab 4", icon, panel4,                 "Does nothing at all");         tabbedPane.setMnemonicAt(3, KeyEvent.VK_4);         JComponent panel5 = makeTextPanel("Panel #5","标签5");         panel5.setPreferredSize(new Dimension(410,50));         tabbedPane.addTab("标签5", icon,panel5,"测试用标签");         //Add the tabbed pane to this panel.         add(tabbedPane);         //The following line enables to use scrolling tabs.         tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);     }     protected JCom

01

JavaSwing_8.1:焦点事件及其监听器 - FocusEvent、FocusListener

低级别事件指示Component已获得或失去输入焦点。 由组件生成此低级别事件(如一个TextField)。 该事件被传递给每一个FocusListener或FocusAdapter注册,以接收使用组件的此类事件对象addFocusListener方法。 ( FocusAdapter对象实现FocusListener接口。)每个此类侦听器对象获取此FocusEvent当事件发生时。 有两个焦点事件级别:持久性和暂时性的。 永久焦点改变事件发生时焦点直接移动从一个组件到另一个,例如通过到requestFocus的(呼叫)或作为用户使用TAB键遍历组件。 当暂时丢失焦点的组件的另一个操作,比如释放Window或拖动滚动条的间接结果一时焦点变化的事件发生。 在这种情况下,原来的聚焦状态将被自动一旦操作完成恢复,或者,对于窗口失活的情况下,当窗口被重新激活。 永久和临时焦点事件使用FOCUS_GAINED和FOCUS_LOST事件id传递; 水平可以使用isTemporary()方法的事件区分开来。 如果未指定的行为将导致的id任何特定的参数FocusEvent实例不是从范围FOCUS_FIRST到FOCUS_LAST

01

Unity背包系统

1.通过UIManager(单例)管理不同的Panel 2.通过BagWindow对背包进行管理 提供方法: 1)OnPackOpen此方法刷新背包中的数据。遍历玩家的全部数据,分两种情况进行背包中的物品刷新。 第一种:一个Block存在子物体,那么将此子物体直接初始化,初始化将激活子物体,将子物体的图片和数量设置为玩家的物品图片和物品的数量。 第二种:一个Block没有子物体,我们将创建一个预制体再初始化此预制体,初始化操作同上 2)ClearBag此方法将背包中的全部有物体的Block的物体进行禁用,来隐藏物体 3.购买物品: 我们通过CommodityManager来对物品进行购买控制。为物品添加一个点击事件OnClick。在此方法中我们将为BagWindow所持有的一个类TipsManager(下面讲)进行委托的赋值操作。 委托的内容: 1)对购买的输入值进行安全检查。 2)对背包进行个检查,包括背包是否满了、玩家是否还有足够的金币进行购买。其中检查背包是否满了和购买物品是否是可叠加物品我们将在玩家的数据类中进行处理。 3)实际的购买我们是在PlayerData中对玩家的物品数据和玩家的金币进行操作。 4)在我们实际购买后,调用一次刷新背包,我们将看到背包的数据与玩家的数据进行同步。 4.我们通过一个TipsManager来管理交易时出现的对话框,在此类中,我们声明一个委托,此委托声明为Action<int>为一个一个参数int类型无返回值的委托。在我们交易完成点击确认的时候将会调用此委托。

02
领券