है
मुझे लगता है कि setBorder(null);
/में डिफ़ॉल्ट Borders
रीसेट जीटीके एल & एफ के लिए UIMananager
से आया है, या JTextField
संपादित करें के लिए UIMananager
सीधे को यह मान सेट करने के लिए:
आप BorderUIResource बदलना होगा, उसी तरह demonstrated here for FontUIResource
EDIT2 के रूप में:
और 1,5 सेकंड में
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;
import javax.swing.plaf.BorderUIResource;
public class SystemFontDisplayer extends JFrame {
private static final long serialVersionUID = 1L;
private JFrame frame = new JFrame("Nimbus UIDeafaults and Font");
private javax.swing.Timer timer = null;
private JTextField testTextField = new JTextField("testTextField");
private JButton testButton = new JButton("testButton");
public SystemFontDisplayer() {
frame.setLayout(new GridLayout(4, 0, 20, 20));
testTextField.setBorder(null);
frame.add(testTextField);
frame.add(testButton);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(200, 105);
frame.pack();
frame.setVisible(true);
start();
}
private void start() {
timer = new javax.swing.Timer(1500, updateCol());
timer.setRepeats(false);
timer.start();
}
public Action updateCol() {
return new AbstractAction("text load action") {
private static final long serialVersionUID = 1L;
@Override
public void actionPerformed(ActionEvent e) {
Border border = new LineBorder(Color.red, 2);
final BorderUIResource res = new BorderUIResource(border);
UIManager.getLookAndFeelDefaults().put("TextField.border", new BorderUIResource(border));
UIManager.getLookAndFeelDefaults().put("Button.border", new BorderUIResource(border));
SwingUtilities.updateComponentTreeUI(frame);
/*Border border = new LineBorder(Color.red, 2);
try {
LookAndFeel lnf = UIManager.getLookAndFeel().getClass().newInstance();
final BorderUIResource res = new BorderUIResource(border);
UIDefaults uiDefaults = lnf.getDefaults();
uiDefaults.put("TextField.border", res);
uiDefaults.put("Label.border", res);
uiDefaults.put("Button.border", res);
UIManager.getLookAndFeel().uninitialize();
UIManager.setLookAndFeel(lnf);
} catch (InstantiationException ex) {
} catch (IllegalAccessException ex) {
} catch (UnsupportedLookAndFeelException ex) {
}
UIDefaults defaults = UIManager.getDefaults();
BorderUIResource res = new BorderUIResource(border);
defaults.put("TextField.border", res);
defaults.put("Label.border", res);
defaults.put("Button.border", res);
SwingUtilities.updateComponentTreeUI(frame);*/
}
};
}
public static void main(String arg[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
SystemFontDisplayer systemFontDisplayer = new SystemFontDisplayer();
}
});
}
}
ब्याज से बाहर , उबंटू/जावा के कौन से संस्करण आप चल रहे हैं? मैंने ओपनजेडीके 1.6.0_24 के साथ अपना उबंटू 12.04 मशीन चलाया है, और यह उम्मीद के अनुसार काम करता है; यह सिर्फ एक लेबल की तरह दिखता है। – Jamie
@ जैमी उबंटू 10.04 और जावा 1.6.0.22। क्या आपने UIManager.setLookAndFeel (UIManager.getSystemLookAndFeelClassName()) सेट किया है? – Ivan
आह, यह तोड़ता है ... क्षमा करें, मैंने सोचा कि यह डिफ़ॉल्ट रूप से जीटीके लुक एंडफेल का उपयोग करेगा, लेकिन स्पष्ट रूप से नहीं! – Jamie