Java Swing用户界面组件:复选框+ 滑块+组合框+边界+单选按钮
liuian 2025-09-29 07:21 57 浏览
选择组件
前面已经讲述了如何获取用户输入的文本。但是在很多情况下,可能更加愿意给用户几种选择而不是让用户在文本组件中输入数据。给一组按钮或者一列选项让用户做出选择。(这样也免去了检查错误的麻烦。)在本节中,将介绍如何编写程序实现复选框、单选按钮、选项列表以及滑块。
复选框
如果想要接收的输入只是“是”或“非”,就可以使用复选框组件。复选框自动地带有标识标签。用户通过点击某个复选框来选择相应的选项,再点击则取消选择。当复选框获得焦点时,用户也可以通过按空格键来切换选择。
图9-15所示的程序中有两个复选框,其中一个用于打开或关闭字体斜体属性,而另一个用于加粗属性。注意第二个复选框有焦点,这一点可以由它周围的矩形框看出。只要用户点击某个复选框,程序就会刷新屏幕以便应用新的字体属性。
复选框需要一个紧邻它的标签来说明其用途。在构造器中指定标签文本。
bold = new JCheckBox("Bold");
可以使用setSelected方法选定或取消复选框。例如:
bold.setSelected(true);
isSelected方法将返回每个复选框的当前状态。如果没有选择则为false,否则为true。
当用户点击复选框时将触发一个动作事件。通常,可以为复选框设置一个动作监听器。在下面程序中,两个复选框使用了同一个动作监听器。
actionPerformed方法查询bold和italic两个复选框的状态,并且把面板中的字体设置为常规、加粗、斜体或者粗斜体。
例9-5给出了复选框的全部代码。
例9-5 CheckBoxTest.java
javax.swing.JCheckBox 1.2
o JCheckBox(String label)
用给定的标签构造一个复选框,该标签初始化为“未选”。
o JCheckBox(String label, boolean state)
用给定的标签和初始化状态构造一个复选框。
o JCheckBox(String label, Icon icon)
用给定的标签与初始化为“未选”的图标构造一个复选框。
o boolean isSelected ( )
返回复选框状态。
o void setSelected(boolean state)
将复选框设置为新的状态。
单选按钮
在前一个例子中,对于两个复选框来说,用户可以选择一个、两个或者两个都不选。在很多情况下,我们需要用户只选择几个选项当中的一个。当用户选择另一个的时候,前一个就会自动地取消选择。这样一组框通常称为单选按钮组(radio button group),这是因为这些按钮的工作像收音机上的电台选择按钮。当按下一个按钮时,
前一个按下的按钮就自动地弹起。图9-16显示了典型的例子。这里允许用户在多个选择中选择字体的大小—小、中、大和超大—但是,每次只能选择一个选项。
在Swing中实现单选按钮组非常简单。为单选按钮组构造一个ButtonGroup类型的对象。
然后,把JRadioButton类型的对象添加到按钮组中。按钮组对象负责当新按钮被按下时取消前一个按下的操作。
如果按钮初始状态已选择,构造器的第二个参数为true,同时其他按钮构造器的这个参数为false。注意,按钮组仅仅控制按钮的行为,如果想把这些按钮组织在一起布局,需要把它们添加到容器中,如JPanel。
看一下图9-15和图9-16,会发现单选按钮的外观不同于复选框。复选框为正方形,并且如果被选择,该正方形中会出现一个对钩的符号。单选按钮是圆形,选择以后圈内出现一个圆点。
单选按钮的事件通告机制与任何其他按钮一样。当用户点击一个单选按钮时,该按钮产生一个动作事件。在例子中,定义了一个动作监听器用来把字体大小设置为新值:
对比这个监听器和复选框中的监听器。每个单选按钮都对应一个不同的监听器对象。每个监听器对象都非常明确它需要做什么—把字体尺寸设置为一个特定值。在复选框例子中,使用的是一种不同的方法。两个复选框共享一个动作监听器。这个监听器调用一个方法来检查两个复选框的当前状态。
对于单选按钮来说,能够使用同一种方法吗?可以试一下使用一个监听器计算尺寸,如
if (smallButton.isSelected()) size = 8;
else if (mediumButton. isSelected()) size = 12;
. . .
然而,我们更愿意使用独立的动作监听器对象,因为这样可以把尺寸值和按钮紧密地绑定在一起。
例9-6是一个用于选择字体大小的完整的程序,它演示了单选按钮的工作过程。
例9-6 RadioButtonTest.java
javax.swing.JRadioButton 1.2
o JRadioButton(String label, boolean state)
用给定的标签和初始状态构造一个单选按钮。
o JRadioButton(String label, Icon icon)
用给定的标签和图标构造一个初始化为“未选”的单选按钮。
javax.swing.ButtonGroup 1.2
o void add(AbstractButton b)
将该按钮添加到组中。
o ButtonModel getSelection( )
返回该按钮的按钮模型。
javax.swing.ButtonModel 1.2
o String getActionCommand( )
返回这个按钮模型的动作命令。
javax.swing.AbstractButton 1.2
o void setActionCommand(String s)
设置这个按钮及其模型的动作命令。
边界
如果在一个窗口中有多组单选按钮,那么就需要用可视化的形式明确地指出哪些按钮属于同一组。Swing提供了一组有用的边界(border)来解决这个问题。可以在任何继承了JComponent的组件上应用边界。最常见的是在一个面板周围设置边界,然后用其他用户界面元素(如单选按钮)来填充面板。
有几种不同的边界可供选择,但是使用它们的步骤完全一样。
1)调用BorderFactory的静态方法创建边界。下面是几种可选的风格(如图9-17所示):
o 凹斜面
o 凸斜面
o 蚀刻
o 直线
o 不光滑
2)如果愿意的话,可以给边界添加标题,具体实现方法是将边界传递给:
BorderFactory.createTitledBorder.
3)如果确实想将边框凸显出来,可以调用下列方法把几种边界组合起来使用:
BorderFactory.createCompoundBorder.
4)调用JComponent类中setBorder方法将结果边界添加到组件中。
例如,下面代码说明了如何把一个带有标题的蚀刻边界添加到一个面板上:
Border etched = BorderFactory.createEtchedBorder( )
Border titled = BorderFactory.createTitledBorder(etched, "A Title");
panel.setBorder(titled);
运行例9-7中的程序可以看到各种边界的外观。
不同的边界有着不同的用于设置边界的宽度和颜色的选项。详情请参看API注释。真正的边界爱好者欣赏这一点,有一个SoftBevelBorder类用于具有柔和拐角的斜面边界;有一个LineBorder类用于弄圆拐角。这些边界只能通过这些类的某个构造器构造,它们没有BorderFactory方法。
例9-7 BorderTest.java
javax.swing.BorderFactory 1.2
o static Border createLineBorder(Color color)
o static Border createLineBorder(Color color, int thickness)
创建一个简单的直线边界。
o static MatteBorder createMatteBorder(int top, int left, int bottom, int right, Color color)
o static MatteBorder createMatteBorder(int top, int left, int bottom, int right, Icon tileIcon)
创建一个用颜色或一个重复(repeating)图标填充的粗边界。
o static Border createEmptyBorder( )
o static Border createEmptyBorder(int top, int left, int bottom, int right)
创建一个空边界。
o static Border createEtchedBorder( )
o static Border createEtchedBorder(Color highlight, Color shadow)
o static Border createEtchedBorder(int type)
o static Border createEtchedBorder(int type, Color highlight, Color shadow)
创建一个具有3D效果的直线边界。
参数:highlight, shadow
用于3D效果的颜色
type EtchedBorder.RAISED和EtchedBorder.LOWERED之一
o static Border createBevelBorder(int type)
o static Border createBevelBorder(int type, Color highlight, Color shadow)
o static Border createLoweredBevelBorder( )
o static Border createRaisedBevelBorder( )
创建具有凹面或凸面效果的边界。
参数:type BevelBorder.LOWERED和BevelBorder.RAISED之一
highlight, shadow
用于3D效果的颜色
o static TitledBorder createTitledBorder(String title)
o static TitledBorder createTitledBorder(Border border)
o static TitledBorder createTitledBorder(Border border, String title)
o static TitledBorder createTitledBorder(Border border, String title, int justification, int position)
o static TitledBorder createTitledBorder(Border border, String title, int justification, int position, Font font)
o static TitledBorder createTitledBorder(Border border, String title, int justification, int position, Font font, Color color)
创建一个具有给定特性的带标题的边框。
参数:title 标题字符串
border 用标题装饰的边界
justification TitledBorder常量LEFT、CENTER、RIGHT、LEADING、TRAILING或
DEFAULT_JUSTIFICATION (left) 之一
position TitledBorder常量ABOVE_TOP、TOP、BELOW_TOP、ABOVE_BOTTOM、
BOTTOM、BELOW_BOTTOM或DEFAULT_POSITION (top) 之一
font 标题的字体
color 标题的颜色
o static CompoundBorder createCompoundBorder(Border outsideBorder, Border insideBorder)
将两个边界组合成一个新的边界。
javax.swing.border.SoftBevelBorder 1.2
o SoftBevelBorder(int type)
o SoftBevelBorder(int type, Color highlight, Color shadow)
创建带有柔和角的斜面边界。
参数:type BevelBorder.LOWERED和BevelBorder.RAISED之一
highlight, shadow
用于3D效果的颜色
javax.swing.border.LineBorder 1.2
o public LineBorder(Color color, int thickness, boolean roundedCorners)
用指定的颜色和宽度创建一个直线边界。如果roundedCorners为true,则边界具有圆拐角。
javax.swing.JComponent 1.2
o void setBorder(Border border)
设置这个组件的边界。
组合框
如果有多个选择项,使用单选按钮就不太合适了,其原因是占据的屏幕空间太大。这时可以选择组合框。
当用户点击这个组件时,选择列表就会下拉出来,用户可以从中选择一项(见图9-18)。
如果下拉列表框被设置成可编辑的(editable),可以像编辑文本域一样编辑当前的选项内容。正因为这个原因,这种组件被称为组合框(combo box),它把文本域的灵活性与一组预定义的选项组合起来。JComboBox类提供了组合框的组件。
调用setEditable方法可以编辑组合框。注意编辑只会影响当前项,而不改变列表内容。
在例子中,用户可以选择字体风格列表(Serif、SansSerif、Monospaced等)选择字体。用户也可以键入其他的字体。
调用addItem增加选项。在示例程序中,只在构造器中调用addItem,实际上可以在任何位置调用它。
faceCombo = new JComboBox( );
faceCombo.setEditable(true);
faceCombo.addItem("Serif");
faceCombo.addItem("SansSerif");
. . .
这个方法将字符串添加到列表结尾。可以使用insertItemAt方法指定新项在列表中的插入位置:
faceCombo.insertItemAt("Monospaced", 0); // add at the beginning
可以增加任何类型的项—组合框将调用每项的toString方法显示其内容。
如果需要在运行时删除某些项,可以使用removeItem或者removeItemAt方法,使用哪个方法将取决于参数提供的是要删除的选项还是位置。
faceCombo.removeItem("Monospaced");
faceCombo.removeItemAt(0); // remove first item
removeAllItems方法将立即移除所有的选项。
提示:如果需要往组合框中添加大量的选项,addItem方法的性能就显得很差了。取而代之的是可以构造一个DefaultComboBoxModel,并调用addElement方法进行加载,然后再调用JComboBox类中的setModel方法。
当用户从组合框中选择一个选项时,组合框就会产生一个动作事件。为了判断哪个选项被选择,可以在事件参数上调用getSource方法来得到发送事件的组合框的一个引用。接着调用getSelectedItem方法获取当前选择的项。需要把这个方法的返回值转化为合适的类型,通常是String型。
例9-8给出了完整的代码。
注意:如果希望持久性地显示列表而不是下拉列表,就应该使用JList组件。在卷II的第6章将介绍JList。
例9-8 ComboBoxTest.java
javax.swing.JComboBox 1.2
o void setEditable(boolean b)
参数:b 如果组合框域可编辑则为true,否则为false
o void addItem(Object item)
将一个选项添加到选项列表中。
o void insertItemAt(Object item, int index)
将一个选项插入到选项列表的指定位置。
o void removeItem(Object item)
从选项列表删除一个选项。
o void removeItemAt(int index)
删除指定位置的选项。
o void removeAllItems( )
从选项列表中删除所有选项。
o Object getSelectedItem( )
返回当前所选的选项。
滑块
组合框允许用户从一组离散值中进行选择。滑块允许进行连续值的选择,例如,选择从1~100的任何一个数值。
通常构造滑块的方法如下:
JSlider slider = new JSlider(min, max, initialValue);
如果忽略最小值、最大值和初始值,那么这三个选项分别默认为0、100和50。
如果需要一个垂直的滑块,可以调用如下的构造器:
JSlider slider = new JSlider(SwingConstants.VERTICAL, min, max, initialValue);
这个构造器构造了一个无格式的滑块,如图9-19上面所示。下面将看一下如何为滑块添加装饰。
当用户滑动滑块时,滑块的值就会在最小值和最大值之间变化。当值发生变化时,ChangeEvent事件就会向所有的改变监听器发出通知。为了得到这些改变的通知,需要调用addChangeListener方法并且安装实现了ChangeListener接口的对象。这个接口只有一个方法StateChanged。
在这个方法中,可以获取滑块的当前值:
public void stateChanged(ChangeEvent event)
{
JSlider slider = (JSlider) event.getSource( );
int value = slider.getValue( );
. . .
}可以通过显示标尺(tick)对滑块进行修饰。例如,在示例程序中,第二个滑块使用了如下的设置:
slider.setMajorTickSpacing(20);
slider.setMinorTickSpacing(5);
上述滑块在每20个单元的位置显示一个的大标尺,每5个单元的位置显示一个小标尺标记。
所谓单元值就是滑块值,而不是像素值。
这些代码只是设置了标尺标记。要将它们实际地显示出来,还需要调用:
slider.setPaintTicks(true);
大标尺和小标尺是独立的。例如,可以为每20个单元设置一个大标尺,同时每7个单元设置一个小标尺,但是这样设置,滑块看起来有可能非常凌乱。
可以强制滑块对齐标尺。在这种模式下,只要用户拖放滑块结束,滑块就会马上自动移到最近的标尺处。激活此模式需要调用:
slider.setSnapToTicks(true);
注意:“对齐标尺”行为与想象的工作过程并不太一样。在滑块真正对齐之前,改变监听器一直报告并不对应标尺的滑块值,如果点击滑块附近,滑块通常向点击方向移动一小段距离,“对齐标尺”的滑块并不移动到下一个标尺处。
可以给大标尺添加标尺标签(tick mark label),调用方法:
slider.setPaintLabels(true);
例如,对于一个范围在0~100的滑块,如果大标尺的间距是20,每个大标尺的标签就应该是0、20、40、60、80和100。
也可以提供其他标尺标记,如字符串或者图标(见图9-19)。这样做有些麻烦。需要填充一个键为Integer类型而值为Component类型的散列表(在JDK 5.0中,自动打包可以使这个过程容易很多)。然后调用setLabelTable方法,组件就会放置在标尺标记处。通常使用JLabel对象。下面代码说明如何把标尺标签设置为A、B、C、D、E和F。
Hashtable<Integer, Component> labelTable = new Hashtable<Integer, Component>( );
labelTable.put(0, new JLabel("A"));
labelTable.put(20, new JLabel("B"));
. . .
labelTable.put(100, new JLabel("F"));
slider.setLabelTable(labelTable);关于散列表的详细介绍,参看卷II的第2章。
例9-9显示了如何创建用图标作为标尺标签的滑块。
提示:如果标尺标记或标签不显示,请检查确认调用了setPaintTicks(true)和etPaintLabels(true)。
忽略滑块移动的轨迹,调用:
slider.setPaintTrack(false);
图9-19中第四个滑块就没有轨迹。
第五个滑块是逆向的,调用:
slider.setInverted(true);
例9-9中的程序演示了所有不同视觉效果的滑块。每个滑块都安装了一个改变事件监听器,它负责把当前的滑块值显示到框架底部的文本域中。
例9-9 SliderTest.java
javax.swing.JSlider 1.2
o JSlider( )
o JSlider(int direction)
o JSlider(int min, int max)
o JSlider(int min, int max, int initialValue)
o JSlider(int direction, int min, int max, int initialValue)
使用给定的方向、最大值、最小值和初始化值创建一个水平滑块。
参数:direction SwingConstants.HORIZONTAL或SwingConstants.VERTICAL之一。默认为水平
min, max 滑块值的最小值、最大值。默认值为0~100
initialValue 滑块的初始化值。默认值为50
o void setPaintTicks(boolean b)
如果b为true显示标尺。
o void setMajorTickSpacing(int units)
o void setMinorTickSpacing(int units)
用给定的滑块单元的倍数,设置大标尺和小标尺。
o void setPaintLabels(boolean b)
如果b是true,显示标尺标签。
o void setLabelTable(Dictionary table)
设置用于标尺标签的组件。表中的每一个键/值对都采用new Integer(value)/component的格式。
o void setSnapToTicks(boolean b)
如果b是true,每一次调整滑块都将对齐到最近的标尺处。
o void setPaintTrack(boolean b)
如果b是true,显示滑块滑动的轨迹。
JSpinner组件
JSpinner是带有两个小按钮的文本域。当点击它时,可以增加或减少文本域的值(见图9-20)。
在微调控制器(spinner)中的值可以是数字、日期、来自列表的值以及任何可以用上一个和下一个决定值的序列。JSpinner类为前三种情况定义了标准的数据模型,还可以自定义数据模型来描述任意的序列。
在默认情况下,微调控制器管理整数,并且按钮点击增加1或减少1。通过调用getValue方法可以获取当前的值。此方法返回Object,需要将它转化为Integer,并得到包装后的值。
JSpinner defaultSpinner = new JSpinner( );
. . .
int value = (Integer) defaultSpinner.getValue( );
可以改变增量,让它不为1,还可以提供更大或更小的边界值。下面的微调控制器,初始值为5,边界值为0和10,增量为0.5:
JSpinner boundedSpinner = new JSpinner(new SpinnerNumberModel(5, 0, 10, 0.5));
有两个SpinnerNumberModel构造器,一个带int参数,另一个带double参数。一旦某个参数是浮点值,就会调用第二个构造器。这个构造器将值设置为Double对象。
微调控制器没有限定只能是数值类型,可以构造一个在任何值的集合中迭代的微调控制器。
只要将SpinnerListModel传递给JSpinner构造器即可。也可以用数组或者实现了List接口的类(像ArrayList)构造SpinnerListModel。在下面的示例程序中,微调控制器控制着所有可能的字体名称。
String[ ] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment( ).getAvailableFontFamilyNames( );
JSpinner listSpinner = new JSpinner(new SpinnerListModel(fonts));
然而,发现迭代的方向有点混乱,这是因为与用户使用的组合框刚好相反。在组合框中,较大的值在较小的值下面,所以可以用向下的键来得到较大的值。但是微调控制器将对数组的下标进行增量迭加,因此向上的键才能得到较大的值。在SpinnerListModel中没有提供逆转顺序的方法,然而可以使用一个临时的匿名子类实现这种结果:
试试这两个版本,看看哪个更合适。
微调控制器的另一个应用就是让用户增减日期。要想得到这样一个微调控制器,并初始化为今天的日期,需要调用:
然而,仔细看一下图9-20,就会发现微调控制器文本显示了日期和时间,如
这里显示的时间对于日期收集器来说没有任何用途。要想让微调控制器只显示日期有些难度,下面是一段修改代码:
使用同样的方法,可以得到一个日期收集器。利用SpinnerDateModel构造器指定一个Date,上下边界(null表示没有边界)和需要修改的Calendar域(比如Calendar.HOUR)。
如果想将增量修改为15分钟,标准SpinnerDateModel类就显得力不从心了。
可以在微调控制器中自定义微调控制器模型显示任意的序列。在我们的示例程序中,有一个微调控制器,可以在字符串“meat”的排列中循环。可以通过点击微调控制器按钮来获得20个排列的字符串“mate”、“meta”、“team”。
在自定义模型时,应该扩展AbstractSpinnerModel类,并定义下面四个方法:
getValue方法返回存储在模型中的值,setValue方法设置一个新值。如果新值不合适,就会抛出一个IllegalArgumentException异常。
警告:在调用setValue方法设置新值之后,必须调用fireStateChanged方法,否则微调控制器不会更新。
getNextValue和getPreviousValue方法返回当前值的下一个或者上一个值,如果到了边界则返回null。
警告:getNextValue和getPreviousValue方法不改变当前值。当用户点击微调控制器的向上箭头,将调用getNextVaule方法。如果返回值不为null,调用setValue进行设置。
在例9-10中,使用了一个标准算法决定前后顺序。在这里,算法细节并不重要。
例9-10显示了如何产生多种微调控制器类型。可以通过点击Ok按钮来查看微调控制器的值。
例9-10 SpinnerTest.java
javax.swing.JSpinner 1.4
o JSpinner( )
构造一个编辑整数的微调控制器,初始值为0,增量为1,没有边界。
o JSpinner(SpinnerModel model)
构造一个使用给定数据模型的微调控制器。
o Object getValue( )
得到微调控制器的当前值。
o void setValue(Object value)
尝试设置微调控制器的值。如果该模型不能接受该值,抛出IllegalArgumentException异常。
o void setEditor(JComponent editor)
设置用于编辑微调控制器的值的组件。
javax.swing.SpinnerNumberModel 1.4
o SpinnerNumberModel(int initval, int minimum, int maximum, int stepSize)
o SpinnerNumberModel(double initval, double minimum, double maximum, double stepSize)
这些构造器产生管理Integer或Double类型的值的数字模型。无边界的值使用Integer和Double类的常量MIN_VALUE和MAX_VALUE定义。
参数:initval 初始值
minimum 最小有效值
maximum 最大有效值
stepSize 每次微调的增量或减量
javax.swing.SpinnerListModel 1.4
o SpinnerListModel(Object[ ] values)
o SpinnerListModel(List values)
这些构造器产生从给定值中选出一个值的模型。
javax.swing.SpinnerDateModel 1.4
o SpinnerDateModel( )
构造一个日期模型,用今天的日期作为初始值,没有下边界与上边界(no lower or upperbounds)增量为Calendar.DAY_OF_MONTH。
o SpinnerDateModel(Date initval, Comparable minimum, Comparable maximum, int step)
参数:initval 初始值
minimum 最小有效值,如果不想要下边界则为null
maximum 最大有效值,如果不想要上边界则为null
step 日期域每一次微调的增量或减量。Calendar类的下述常量之一:
ERA、YEAR、MONTH、WEEK_OF_YEAR、WEEK_OF_MONTH、
DAY_OF_MONTH 、 DAY_OF_YEAR 、 DAY_OF_WEEK 、
DAY_OF_WEEK_IN_MONTH、AM_PM、HOUR、HOUR_OF_DAY、
MINUTE、SECOND或MILLISECOND
java.text.SimpleDateFormat 1.1
o String toPattern( ) 1.2
得到这个日期格式器的编辑模式。一种典型的模式是“yyyy-MM-dd”。有关模式的详细的信息请参看JDK文档。
javax.swing.JSpinner.DateEditor 1.4
o DateEditor(JSpinner spinner, String pattern)
为微调控制器构造一个日期编辑器。
参数:spinner 编辑器所属的微调控制器
pattern 与SimpleDateFormat相关的格式模式
javax.swing.AbstractSpinnerModel 1.4
o Object getValue( )
得到该模型的当前值。
o void setValue(Object value)
给模型设置一个新值。如果该值不可接受,则抛出IllegalArgumentException异常。当覆盖这个方法时,在设置新值之后应该调用fireStateChanged。
o Object getNextValue( )
o Object getPreviousValue( )
计算(但是不设置)该模型定义序列中的下一个或上一个值。
今天就讲到这里,喜欢的朋友可以转发关注一下!!!
明天给大家分享GUI应用程序中的下拉式菜单~~~~~~
相关推荐
- 路由器组网具体连接方法(路由器组网教程)
-
举例:你正在用一个TP-LINK的无线路由器上网,信号不是太好,你想在下边再连一个无线路由器的话,就得在第二个路由器上设置了,先不管第一个路由器,设置步骤:把第二个无线路由器连接到电脑上(只是路...
- 雨林木风win7纯净版gho(雨林木风win7官网)
-
雨林木风WIN7光盘重装系统的步骤是将光盘放入光驱内,设置光驱为第一启动盘,打开电脑后进入光盘引导,最后将系统文件镜像到系统盘上1.你下载的雨林木风GHOSTXPSP3纯净版Y8.0是一个克隆光...
- 电脑一直正在重新启动怎么解决
-
1、电脑误删除或者是破坏了系统文件。那么需要重新安装系统。2、可能是安装的软件或者是插件跟系统兼容性冲突导致的。可以强制关机3次,然后重新启动电脑会出现恢复界面——选择安全模式——然后电脑会重新启...
-
- 如何下载ps软件免费版(ps如何下载免费版本)
-
1.在搜索引擎中输入adobe并点击搜索。2.点击adobe官网。3.点击支持并点击下载与安装。4.点击开始免费试用并点击下载。5.打开文件夹并点击打开进行安装即可。6.根据以上步骤即可下载安装ps。AdobePhotoshopCS6号...
-
2026-01-14 05:37 liuian
- 怎么判断该换硅脂了(cpu硅脂干了影响真的很大吗)
-
方法步骤如下第一,从系统软件的运行上来看,如果在运行某些大型软件,容易导致显卡发热的程序时,出现画面掉帧,或卡顿,甚至是画面卡死等情况,这大多是因为显卡散热出现问题,导致显卡自动降频,以降低功耗来减少...
- 壁纸图片2025最新款(电脑桌面壁纸图片2025最新款)
-
要更换2023最新款壁纸图片,可以按照以下步骤操作:首先,找到您想要更换的壁纸图片并下载到您的设备上。其次,进入您的设备设置,找到“壁纸”或“桌面壁纸”选项,并点击进入。然后,选择“更换壁纸”并在相册...
- 清理垃圾的神器(清理垃圾的神器是什么)
-
1、《腾讯手机管家》这款可以帮助用户进行强力的清理,加速告别空间卡顿,缓慢延迟的问题的软件当中,用户可以随时随地登录软件进行自动清理和自动清理,自动清理包括图片,视频,语音文件在内的各种换成文件,为手...
- 苹果笔记本怎样重装系统(苹果笔记本怎样重装系统还原)
-
苹果笔记本电脑系统可以通过以下步骤进行重装:1.备份数据:在开始重装前,需要备份你的重要数据。你可以将数据存储到外部硬盘、云存储或其他可靠的设备中。2.下载安装器:从AppStore中下载macOS...
- 手机wifi打不开怎么办
-
手机wifi打不开的原因,可能集中在该手机出现了手机文件丢失、手机版本不稳定、手机文件出错以及手机wifi模块摔坏等故障造成的。手机wifi打不开修复教程1.wcnss_qcom_cfg文件丢失导...
- bios恢复出厂设置后无法开机
-
可通过进入BIOS界面设置bios恢复出厂设置的方法解决,步骤如下:1、通过按Delete或数字键盘中的Del键进入BIOS。2、按箭头键输入并将光标移动到“加载设置默认值”项,然后按enter确认。...
- 电脑硬盘打不开怎么办(电脑硬盘打不开怎么办)
-
电脑硬盘坏了是不能开机的。硬盘坏道的修复方法:1、逻辑坏道的修复对于逻辑坏道,Windows自带的“磁盘扫描程序(Scandisk)”就是最简便常用的解决手段。如果硬盘出现了坏道,我们可在Window...
- linux系统备份与还原工具(linux系统备份与还原工具在哪)
-
用GHOST对LINUX系统做备份1:要求将安装了LINUX系统的硬盘(原盘)整盘刻至另一硬盘(目标盘)。2:所需工具:DOS系统引导盘,GHOST2003(版本低的对文件格式不能很好的支持),原盘(...
- pdf怎么转换成xml格式(如何将pdf格式转换成xml格式)
-
将PDF转换为XML需要使用专业的PDF转换工具。以下是一些常用的PDF转XML工具:1.AdobeAcrobatDC:AdobeAcrobatDC是一款功能强大的PDF编辑软件,其中包括P...
- windows7iso文件(iso文件 win7)
-
利用winrar可以直接打开iso文件,如果双击不能直接打开需要设置winrar,步骤如下:1、启动winrar,点击选项菜单设置命令;2、点击综合选项卡,点击全部选择,点击确定即可。具体操作方法步骤...
- 路由器ip地址是什么意思(路由器的ip地址是)
-
路由器IP地址是指连接到互联网的路由器在局域网内的唯一标识符,一般为192.168.1.1或192.168.0.1等地址。通过路由器IP地址,用户可以通过浏览器等工具登录到路由器管理界面,进行网络设置...
- 一周热门
-
-
飞牛OS入门安装遇到问题,如何解决?
-
如何在 iPhone 和 Android 上恢复已删除的抖音消息
-
Boost高性能并发无锁队列指南:boost::lockfree::queue
-
大模型手册: 保姆级用CherryStudio知识库
-
用什么工具在Win中查看8G大的log文件?
-
如何在 Windows 10 或 11 上通过命令行安装 Node.js 和 NPM
-
威联通NAS安装阿里云盘WebDAV服务并添加到Infuse
-
Trae IDE 如何与 GitHub 无缝对接?
-
idea插件之maven search(工欲善其事,必先利其器)
-
如何修改图片拍摄日期?快速修改图片拍摄日期的6种方法
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
