swing组件settext数字怎么控制jslider
发布网友
发布时间:2022-05-01 11:36
我来回答
共2个回答
热心网友
时间:2023-10-10 03:45
Swing 甚至走得更远一步,在基本的 UI 原则之上又放上了一个公共的设计模式。这个设计模式叫做模型-视图-控制器(Model-View-Controller,MVC),它试图“把角色分开”。MVC 让负责显示的代码、处理数据的代码、对交互进行响应并驱动变化的代码彼此分离。
有点迷惑?如果我为这个设计模式提供一个现实世界的非技术性示例,它就比较容易了。请想像一次时装秀。把秀场当成 UI,假设服装就是数据,是展示给用户的计算机信息。现在,假设这次时装秀中只有一个人。这个人设计服装、修改服装、同时还在 T 台上展示这些服装。这看起来可不是一个构造良好的或有效率的设计。
现在,假设同样的时装秀采用 MVC 设计模式。这次不是一个人做每件事,而是将角色分开。时装模特(不要与 MVC 缩写中的模型混淆)展示服装。他们扮演的角色是视图。他们知道展示服装(数据的)适当方法,但是根本不知道如何创建或设计服装。另一方面,时装设计师充当控制器。时装设计师对于如何在 T 台上走秀没有概念,但他能创建和操纵服装。时装模特和设计师都能独立地处理服装,但都有自己的专业领域。
这就是 MVC 设计模式背后的概念:让 UI 的每个方面处理它擅长的工作。如果您仍然不明白,那么教程后面的示例有望消除您的迷惑 —— 但是在您继续进行的时候,请记住基本的原则:用可视组件显示数据,同时让其他类操纵数据。
JComponent
Swing 的整个可视组件库的基础构造块是 JComponent。它是所有组件的父类。它是一个抽象类,所以不能创建 JComponent,但是作为类层次结构的结果,从字面意义来说它包含了数百个函数,Swing 中的每个组件都可以使用这些函数。显然,有些概念要比其他概念重要,所以对于本教程,需要学习的重要的东西是:
JComponent 不仅是 Swing 组件的基类,还是定制组件的基类(有关的更多信息在“中级 Swing”教程中)。
它为所有组件提供了绘制的基础架构 —— 一些方便进行组件定制的东西(同样,在“中级 Swing”中,有关于这个主题的更多信息)。
它知道如何处理所有的键盘按键。所以类只需要侦听特定的键。
它包含 add() 方法,可以添加其他 JComponent。换种方式来看,可以把任意 Swing 组件添加到其他任何 Swing 组件,从而构造嵌套组件(例如,JPanel 包含 JButton,甚至包含一些古怪的组合,例如 JMenu 包含 JButton)。
热心网友
时间:2023-10-10 03:45
//不知道为什么翻牌控件与滑块控件无法同时显示代码如下
import javax.swing.*;
import java.awt.*;
public class Test extends JFrame
{
public static void main(String []args)
{
Test frame =new Test();
}
public Test()
{
super("测试");
Container c=getContentPane();
// c.setLayout(new FlowLayout(FlowLayout.CENTER));
JSlider js=new JSlider();
js.setMajorTickSpacing(2);
js.setPaintTicks(true);
c.add(js,BorderLayout.NORTH);
// Container c1=getContentPane();
// CardLayout card =new CardLayout();
// c1.setLayout(null);
JPanel cardPanel = new JPanel();
cardPanel.setLayout(null);
JButton b1=new JButton("ok");
JButton b2=new JButton("ko");
b1.setBounds(70, 50, 60, 20);
b2.setBounds(150, 50, 60, 20);
cardPanel.add(b1,"1");
cardPanel.add(b2,"2");
c.add(cardPanel,BorderLayout.CENTER);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300,300);
setLocationRelativeTo(null);
setVisible(true);
}
}