我正在尝试访问JFrame中的所有组件文本,但是使用我发现的方法我无法做到。
for(Component c : this.getComponents()) {
c.setText(TRNASLATE(c.getText()));
// does not work: no set and getText methods
}
有没有办法获取或设置组件的文本?
在您提出问题之前:我正在尝试翻译JFrame上的元素而不手动列出其组件并设置其文本(将需要很长时间逐个列出它们)
抱歉我的英文。
答案 0 :(得分:1)
您可以使用QuaternarySearch(A[0. . n-1], value, low, high)
while high ≥ 1
p1/4 = low + ((high – low) / 4) //first quarter point
p1/2 = low + ((high – low) / 2) //second quarter point
p3/4 = low + (3(high – low) / 4) //third quarter point
if A[p1/4] = value
return A[p1/4]
else if A[p1/2] = value
return A[p1/2]
else if A[p3/4] = value
return A[p3/4]
else if A[p1/4] > value
return QuaternarySearch(A, value, low, p1/4-1)
else if A[p1/2] > value
return QuaternarySearch(A, value, p1/4+1, p1/2-1)
else if A[p3/4] > value > A[p1/2]
return QuaternarySearch(A, value, p1/2+1, p3/4-1)
else //if A[p3/4] < value
return QuarterSearch(A, value, p3/4 + 1, high)
来检查组件是否是某种类型,即为其键入的强制类型。大多数组件都有getText()方法。
示例:
instanceof
根据需要使用尽可能多的组件类型重复for(Component c : this.getComponents()) {
if(c instanceof JLabel){
JLabel label = (JLabel) c;
String text = c.getText();
}
}
。
答案 1 :(得分:0)
老问题,但我希望这对某人有所帮助 (扩展了 Razi 的回答)
public static void setSwingObjectText(Object object, String text) {
//generated
if (object instanceof javax.swing.AbstractButton)
((javax.swing.AbstractButton) object).setText(text);
else if (object instanceof javax.swing.DefaultListCellRenderer)
((javax.swing.DefaultListCellRenderer) object).setText(text);
else if (object instanceof javax.swing.JButton)
((javax.swing.JButton) object).setText(text);
else if (object instanceof javax.swing.JCheckBox)
((javax.swing.JCheckBox) object).setText(text);
else if (object instanceof javax.swing.JCheckBoxMenuItem)
((javax.swing.JCheckBoxMenuItem) object).setText(text);
else if (object instanceof javax.swing.JEditorPane)
((javax.swing.JEditorPane) object).setText(text);
else if (object instanceof javax.swing.JFormattedTextField)
((javax.swing.JFormattedTextField) object).setText(text);
else if (object instanceof javax.swing.JLabel)
((javax.swing.JLabel) object).setText(text);
else if (object instanceof javax.swing.JMenu)
((javax.swing.JMenu) object).setText(text);
else if (object instanceof javax.swing.JMenuItem)
((javax.swing.JMenuItem) object).setText(text);
else if (object instanceof javax.swing.JPasswordField)
((javax.swing.JPasswordField) object).setText(text);
else if (object instanceof javax.swing.JRadioButton)
((javax.swing.JRadioButton) object).setText(text);
else if (object instanceof javax.swing.JRadioButtonMenuItem)
((javax.swing.JRadioButtonMenuItem) object).setText(text);
else if (object instanceof javax.swing.JTextArea)
((javax.swing.JTextArea) object).setText(text);
else if (object instanceof javax.swing.JTextField)
((javax.swing.JTextField) object).setText(text);
else if (object instanceof javax.swing.JTextPane)
((javax.swing.JTextPane) object).setText(text);
else if (object instanceof javax.swing.JToggleButton)
((javax.swing.JToggleButton) object).setText(text);
else if (object instanceof javax.swing.plaf.basic.BasicArrowButton)
((javax.swing.plaf.basic.BasicArrowButton) object).setText(text);
else if (object instanceof javax.swing.plaf.basic.BasicComboBoxRenderer)
((javax.swing.plaf.basic.BasicComboBoxRenderer) object).setText(text);
else if (object instanceof javax.swing.plaf.metal.MetalComboBoxButton)
((javax.swing.plaf.metal.MetalComboBoxButton) object).setText(text);
else if (object instanceof javax.swing.plaf.metal.MetalScrollButton)
((javax.swing.plaf.metal.MetalScrollButton) object).setText(text);
else if (object instanceof javax.swing.table.DefaultTableCellRenderer)
((javax.swing.table.DefaultTableCellRenderer) object).setText(text);
else if (object instanceof javax.swing.text.JTextComponent)
((javax.swing.text.JTextComponent) object).setText(text);
else if (object instanceof javax.swing.tree.DefaultTreeCellRenderer)
((javax.swing.tree.DefaultTreeCellRenderer) object).setText(text);
else if (object instanceof javax.swing.JDialog)
((javax.swing.JDialog) object).setTitle(text);
else if (object instanceof javax.swing.JFrame)
((javax.swing.JFrame) object).setTitle(text);
else if (object instanceof javax.swing.JInternalFrame)
((javax.swing.JInternalFrame) object).setTitle(text);
else if (object instanceof javax.swing.border.TitledBorder)
((javax.swing.border.TitledBorder) object).setTitle(text);
}
public static String getSwingObjectText(Object object) {
//generated
if (object instanceof javax.swing.AbstractButton)
return ((javax.swing.AbstractButton) object).getText();
if (object instanceof javax.swing.DefaultListCellRenderer)
return ((javax.swing.DefaultListCellRenderer) object).getText();
if (object instanceof javax.swing.JButton)
return ((javax.swing.JButton) object).getText();
if (object instanceof javax.swing.JCheckBox)
return ((javax.swing.JCheckBox) object).getText();
if (object instanceof javax.swing.JCheckBoxMenuItem)
return ((javax.swing.JCheckBoxMenuItem) object).getText();
if (object instanceof javax.swing.JEditorPane)
return ((javax.swing.JEditorPane) object).getText();
if (object instanceof javax.swing.JFormattedTextField)
return ((javax.swing.JFormattedTextField) object).getText();
if (object instanceof javax.swing.JLabel)
return ((javax.swing.JLabel) object).getText();
if (object instanceof javax.swing.JMenu)
return ((javax.swing.JMenu) object).getText();
if (object instanceof javax.swing.JMenuItem)
return ((javax.swing.JMenuItem) object).getText();
if (object instanceof javax.swing.JPasswordField)
return ((javax.swing.JPasswordField) object).getText();
if (object instanceof javax.swing.JRadioButton)
return ((javax.swing.JRadioButton) object).getText();
if (object instanceof javax.swing.JRadioButtonMenuItem)
return ((javax.swing.JRadioButtonMenuItem) object).getText();
if (object instanceof javax.swing.JTextArea)
return ((javax.swing.JTextArea) object).getText();
if (object instanceof javax.swing.JTextField)
return ((javax.swing.JTextField) object).getText();
if (object instanceof javax.swing.JTextPane)
return ((javax.swing.JTextPane) object).getText();
if (object instanceof javax.swing.JToggleButton)
return ((javax.swing.JToggleButton) object).getText();
if (object instanceof javax.swing.plaf.basic.BasicArrowButton)
return ((javax.swing.plaf.basic.BasicArrowButton) object).getText();
if (object instanceof javax.swing.plaf.basic.BasicComboBoxRenderer)
return ((javax.swing.plaf.basic.BasicComboBoxRenderer) object).getText();
if (object instanceof javax.swing.plaf.metal.MetalComboBoxButton)
return ((javax.swing.plaf.metal.MetalComboBoxButton) object).getText();
if (object instanceof javax.swing.plaf.metal.MetalScrollButton)
return ((javax.swing.plaf.metal.MetalScrollButton) object).getText();
if (object instanceof javax.swing.table.DefaultTableCellRenderer)
return ((javax.swing.table.DefaultTableCellRenderer) object).getText();
if (object instanceof javax.swing.text.JTextComponent)
return ((javax.swing.text.JTextComponent) object).getText();
if (object instanceof javax.swing.tree.DefaultTreeCellRenderer)
return ((javax.swing.tree.DefaultTreeCellRenderer) object).getText();
if (object instanceof javax.swing.JDialog)
return ((javax.swing.JDialog) object).getTitle();
if (object instanceof javax.swing.JFrame)
return ((javax.swing.JFrame) object).getTitle();
if (object instanceof javax.swing.JInternalFrame)
return ((javax.swing.JInternalFrame) object).getTitle();
if (object instanceof javax.swing.border.TitledBorder)
return ((javax.swing.border.TitledBorder) object).getTitle();
return null; //no matches
}