在Java中更改特定类型的所有对象的属性
我有一个类,包括在Java中更改特定类型的所有对象的属性,java,swing,netbeans,properties,Java,Swing,Netbeans,Properties,我有一个类,包括javax.swing.JButton,javax.swing.JTextField 但是,在实例化类之后,我只需要更改某些类型的属性 我尝试使用this.getComponents()但是返回了null 这是我的代码: /* * To change this license header, choose License Headers in Project Properties. * To change this template file, cho
javax.swing.JButton
,javax.swing.JTextField
但是,在实例化类之后,我只需要更改某些类型的属性
我尝试使用this.getComponents()
但是返回了null
这是我的代码:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package test;
import java.awt.Component;
import java.awt.Font;
/**
*
* @author Usuario
*/
public class NewJFrame extends javax.swing.JFrame {
/**
* Creates new form NewJFrame
*/
public NewJFrame() {
initComponents();
Component[] component = this.getComponents();
System.out.println("this.getName():"+this.getName());
System.out.println("this.getClass().getName():"+this.getClass().getName());
System.out.println("component.length:"+component.length);
for(int i=0; i<component.length; i++) {
System.out.println("--component[i].getName()"+component[i].getName());
if (component[i] instanceof javax.swing.JTextField) {
javax.swing.JTextField jtf = (javax.swing.JTextField)component[i];
System.out.println(jtf.getName());
jtf.setFont(new Font("Serif",Font.PLAIN, 36));
}
}
UIManager.getLookAndFeelDefaults().put("TextField.font", new Font("Serif",Font.PLAIN, 36));
//UIManager.getDefaults().put("TextField.font", new Font("Serif",Font.PLAIN, 36));
//UIManager.put("TextField.font", new Font("Serif",Font.PLAIN, 36));
//this.updateUI(); // Is not suitable for javax.swing.JFrame
this.pack();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jtpBot = new javax.swing.JTabbedPane();
jpOne = new javax.swing.JPanel();
jpOneInner = new javax.swing.JPanel();
jbFirst = new javax.swing.JButton();
jtfOne = new javax.swing.JTextField();
jpOnePlot = new javax.swing.JPanel();
jpTwo = new javax.swing.JPanel();
jpTwoInner = new javax.swing.JPanel();
jbTwo = new javax.swing.JButton();
jtfTwo = new javax.swing.JTextField();
jpTwoPlot = new javax.swing.JPanel();
jpThree = new javax.swing.JPanel();
jpThreeInner = new javax.swing.JPanel();
jbThree = new javax.swing.JButton();
jtfThree = new javax.swing.JTextField();
jpThreePlot = new javax.swing.JPanel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setBackground(new java.awt.Color(255, 255, 255));
jtpBot.setBackground(new java.awt.Color(0, 0, 0));
jtpBot.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
jpOne.setBackground(new java.awt.Color(0, 191, 191));
jpOneInner.setBackground(new java.awt.Color(255, 0, 0));
jpOneInner.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));
jbFirst.setText("First");
jbFirst.setMaximumSize(new java.awt.Dimension(70, 23));
jbFirst.setMinimumSize(new java.awt.Dimension(70, 23));
jbFirst.setPreferredSize(new java.awt.Dimension(70, 23));
jtfOne.setMaximumSize(new java.awt.Dimension(80, 20));
jtfOne.setMinimumSize(new java.awt.Dimension(80, 20));
jtfOne.setPreferredSize(new java.awt.Dimension(80, 20));
jpOnePlot.setBackground(new java.awt.Color(191, 191, 191));
jpOnePlot.setBorder(javax.swing.BorderFactory.createEtchedBorder());
javax.swing.GroupLayout jpOnePlotLayout = new javax.swing.GroupLayout(jpOnePlot);
jpOnePlot.setLayout(jpOnePlotLayout);
jpOnePlotLayout.setHorizontalGroup(
jpOnePlotLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 181, Short.MAX_VALUE)
);
jpOnePlotLayout.setVerticalGroup(
jpOnePlotLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
javax.swing.GroupLayout jpOneInnerLayout = new javax.swing.GroupLayout(jpOneInner);
jpOneInner.setLayout(jpOneInnerLayout);
jpOneInnerLayout.setHorizontalGroup(
jpOneInnerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jpOneInnerLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jbFirst, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jtfOne, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jpOnePlot, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jpOneInnerLayout.setVerticalGroup(
jpOneInnerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jpOneInnerLayout.createSequentialGroup()
.addContainerGap()
.addGroup(jpOneInnerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jpOneInnerLayout.createSequentialGroup()
.addGroup(jpOneInnerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jbFirst, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jtfOne, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(0, 117, Short.MAX_VALUE))
.addComponent(jpOnePlot, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
javax.swing.GroupLayout jpOneLayout = new javax.swing.GroupLayout(jpOne);
jpOne.setLayout(jpOneLayout);
jpOneLayout.setHorizontalGroup(
jpOneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jpOneLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jpOneInner, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jpOneLayout.setVerticalGroup(
jpOneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jpOneLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jpOneInner, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jtpBot.addTab("One", jpOne);
jpTwo.setBackground(new java.awt.Color(191, 0, 191));
jpTwoInner.setBackground(new java.awt.Color(0, 255, 0));
jpTwoInner.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));
jbTwo.setText("Two");
jbTwo.setMaximumSize(new java.awt.Dimension(70, 23));
jbTwo.setMinimumSize(new java.awt.Dimension(70, 23));
jbTwo.setPreferredSize(new java.awt.Dimension(70, 23));
jtfTwo.setMaximumSize(new java.awt.Dimension(80, 20));
jtfTwo.setMinimumSize(new java.awt.Dimension(80, 20));
jtfTwo.setPreferredSize(new java.awt.Dimension(80, 20));
jpTwoPlot.setBackground(new java.awt.Color(191, 191, 191));
jpTwoPlot.setBorder(javax.swing.BorderFactory.createEtchedBorder());
javax.swing.GroupLayout jpTwoPlotLayout = new javax.swing.GroupLayout(jpTwoPlot);
jpTwoPlot.setLayout(jpTwoPlotLayout);
jpTwoPlotLayout.setHorizontalGroup(
jpTwoPlotLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 181, Short.MAX_VALUE)
);
jpTwoPlotLayout.setVerticalGroup(
jpTwoPlotLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
javax.swing.GroupLayout jpTwoInnerLayout = new javax.swing.GroupLayout(jpTwoInner);
jpTwoInner.setLayout(jpTwoInnerLayout);
jpTwoInnerLayout.setHorizontalGroup(
jpTwoInnerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jpTwoInnerLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jbTwo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jtfTwo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jpTwoPlot, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jpTwoInnerLayout.setVerticalGroup(
jpTwoInnerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jpTwoInnerLayout.createSequentialGroup()
.addContainerGap()
.addGroup(jpTwoInnerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jpTwoPlot, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jpTwoInnerLayout.createSequentialGroup()
.addGroup(jpTwoInnerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jbTwo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jtfTwo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(0, 117, Short.MAX_VALUE)))
.addContainerGap())
);
javax.swing.GroupLayout jpTwoLayout = new javax.swing.GroupLayout(jpTwo);
jpTwo.setLayout(jpTwoLayout);
jpTwoLayout.setHorizontalGroup(
jpTwoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jpTwoLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jpTwoInner, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jpTwoLayout.setVerticalGroup(
jpTwoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jpTwoLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jpTwoInner, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jtpBot.addTab("Two", jpTwo);
jpThree.setBackground(new java.awt.Color(191, 191, 0));
jpThreeInner.setBackground(new java.awt.Color(0, 0, 255));
jpThreeInner.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));
jbThree.setText("Three");
jbThree.setMaximumSize(new java.awt.Dimension(70, 23));
jbThree.setMinimumSize(new java.awt.Dimension(70, 23));
jbThree.setPreferredSize(new java.awt.Dimension(70, 23));
jtfThree.setMaximumSize(new java.awt.Dimension(80, 20));
jtfThree.setMinimumSize(new java.awt.Dimension(80, 20));
jtfThree.setPreferredSize(new java.awt.Dimension(80, 20));
jpThreePlot.setBackground(new java.awt.Color(191, 191, 191));
jpThreePlot.setBorder(javax.swing.BorderFactory.createEtchedBorder());
javax.swing.GroupLayout jpThreePlotLayout = new javax.swing.GroupLayout(jpThreePlot);
jpThreePlot.setLayout(jpThreePlotLayout);
jpThreePlotLayout.setHorizontalGroup(
jpThreePlotLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 181, Short.MAX_VALUE)
);
jpThreePlotLayout.setVerticalGroup(
jpThreePlotLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
javax.swing.GroupLayout jpThreeInnerLayout = new javax.swing.GroupLayout(jpThreeInner);
jpThreeInner.setLayout(jpThreeInnerLayout);
jpThreeInnerLayout.setHorizontalGroup(
jpThreeInnerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jpThreeInnerLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jbThree, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jtfThree, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jpThreePlot, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jpThreeInnerLayout.setVerticalGroup(
jpThreeInnerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jpThreeInnerLayout.createSequentialGroup()
.addContainerGap()
.addGroup(jpThreeInnerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jpThreePlot, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jpThreeInnerLayout.createSequentialGroup()
.addGroup(jpThreeInnerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jbThree, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jtfThree, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(0, 117, Short.MAX_VALUE)))
.addContainerGap())
);
javax.swing.GroupLayout jpThreeLayout = new javax.swing.GroupLayout(jpThree);
jpThree.setLayout(jpThreeLayout);
jpThreeLayout.setHorizontalGroup(
jpThreeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jpThreeLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jpThreeInner, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jpThreeLayout.setVerticalGroup(
jpThreeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jpThreeLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jpThreeInner, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jtpBot.addTab("Three", jpThree);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jtpBot)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(69, 69, 69)
.addComponent(jtpBot)
.addContainerGap())
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
boolean bCanIuseOne = false;
boolean bCanIuseTwo = false;
boolean bThreadFree = true;
boolean bMouseFree = false;
// Variables declaration - do not modify
private javax.swing.JButton jbFirst;
private javax.swing.JButton jbThree;
private javax.swing.JButton jbTwo;
private javax.swing.JPanel jpOne;
private javax.swing.JPanel jpOneInner;
private javax.swing.JPanel jpOnePlot;
private javax.swing.JPanel jpThree;
private javax.swing.JPanel jpThreeInner;
private javax.swing.JPanel jpThreePlot;
private javax.swing.JPanel jpTwo;
private javax.swing.JPanel jpTwoInner;
private javax.swing.JPanel jpTwoPlot;
private javax.swing.JTextField jtfOne;
private javax.swing.JTextField jtfThree;
private javax.swing.JTextField jtfTwo;
private javax.swing.JTabbedPane jtpBot;
// End of variables declaration
}
我想得到类似于:
javax.swing.JTextField jtfOne;
javax.swing.JTextField jtfThree;
javax.swing.JTextField jtfTwo;
javax.swing.JButton jbFirst;
javax.swing.JButton jbThree;
javax.swing.JButton jbTwo;
怎么做?
PD:我正在与Netbeans合作
编辑1:尝试了VGR的建议
编辑2:WillShackleford的解决方案,谢谢!!!:
public NewJFrame() {
Color ACTIVE_COLOUR = Color.DARK_GRAY;
Color INACTIVE_COLOUR = Color.LIGHT_GRAY;
Font theFont = new Font("Serif",Font.PLAIN, 11);
UIManager.put("TextField.font", theFont);
UIManager.put("Button.font", theFont);
UIManager.put("ComboBox.font", theFont);
//UIManager.put("TextField.background", new ColorUIResource(ACTIVE_COLOUR));
UIManager.put("TextField.background", ACTIVE_COLOUR);
UIManager.put("TextField.foreground", INACTIVE_COLOUR);
initComponents();
List<Component> l = new ArrayList<>();
addComponents(this, l);
for(int i = 0; i < l.size(); i++) {
if (l.get(i) instanceof javax.swing.JTextField) {
javax.swing.JTextField jtf = (javax.swing.JTextField)l.get(i);
jtf.setFont(new Font("Serif",Font.PLAIN, 24));
jtf.setPreferredSize(new Dimension(jtf.getWidth(), jtf.getHeight()+10));
System.out.println("JTextField:"+", Width:"+jtf.getWidth()+", Height:"+jtf.getHeight());
}
if (l.get(i) instanceof javax.swing.JButton) {
javax.swing.JButton jb = (javax.swing.JButton)l.get(i);
jb.setPreferredSize(new Dimension(jb.getWidth(), jb.getHeight()+10));
System.out.println("JButton:"+", Width:"+jb.getWidth()+", Height:"+jb.getHeight());
}
}
}
public void addComponents(Container c, List<Component> l) {
Component ca[] = c.getComponents();
l.addAll(Arrays.asList(ca));
for (int i = 0; i < ca.length; i++) {
Component component = ca[i];
if (Container.class.isAssignableFrom(component.getClass())) {
addComponents((Container) component, l);
}
}
}
public NewJFrame(){
颜色活动颜色=颜色。深灰色;
颜色不活动\u颜色=颜色。浅灰色;
Font-theFont=新字体(“衬线”,Font.PLAIN,11);
UIManager.put(“TextField.font”,字体);
UIManager.put(“Button.font”,字体);
UIManager.put(“ComboBox.font”,字体);
//UIManager.put(“TextField.background”,新颜色uiresource(ACTIVE_color));
UIManager.put(“TextField.background”,活动颜色);
UIManager.put(“文本字段.前景”,非活动颜色);
初始化组件();
列表l=新的ArrayList();
添加组件(本,l);
对于(int i=0;i
Netbeans中的GUI编辑器使得在一个步骤中选择任意一组组件并更改其所有属性变得非常容易
public NewJFrame() {
initComponents();
List<Component> l = new ArrayList<>();
addComponents(this, l);
System.out.println("l = " + l);
}
public void addComponents(Container c, List<Component> l) {
Component ca[] = c.getComponents();
l.addAll(Arrays.asList(ca));
for (int i = 0; i < ca.length; i++) {
Component component = ca[i];
if (Container.class.isAssignableFrom(component.getClass())) {
addComponents((Container) component, l);
}
}
}
public NewJFrame(){
初始化组件();
列表l=新的ArrayList();
添加组件(本,l);
System.out.println(“l=”+l);
}
公共组件(容器c,列表l){
组件ca[]=c.getComponents();
l、 addAll(Arrays.asList(ca));
对于(int i=0;i
I deleted:你说“我想更改某一类型的属性”是什么意思?更改所有JTextField类型对象的字体、前景属性,并更改所有JButton类型对象的字体、大小属性!如果要更改所有jtextfield的字体,应使用UIManager.put(“TextField.font”,newFont)
。同样,为键“TextField.foreground”传递一个新颜色。然后执行this.updateUI()
以使新的UI默认值生效,并执行this.pack()
以考虑新的首选大小。您还应该删除对set*Size方法的所有调用。有您的命题示例吗?
-在调用任何“新”语句创建Swing对象之前,您可以调用UIManager.put(…)
语句。如果你想测试一个概念,那么创建一个测试来做一个简单的测试。即创建一个框架并向该框架添加两个或三个组件。确保类中的第一行代码是UIManager.put(…)
语句。整个测试程序大约需要10-15行代码。如果它不能像预期的那样工作,那么你可以在论坛上发布简单的代码,而不是100行代码。
public NewJFrame() {
initComponents();
List<Component> l = new ArrayList<>();
addComponents(this, l);
System.out.println("l = " + l);
}
public void addComponents(Container c, List<Component> l) {
Component ca[] = c.getComponents();
l.addAll(Arrays.asList(ca));
for (int i = 0; i < ca.length; i++) {
Component component = ca[i];
if (Container.class.isAssignableFrom(component.getClass())) {
addComponents((Container) component, l);
}
}
}