JFrame启动时如何禁用JPanel

时间:2019-04-17 15:01:46

标签: java swing jframe jpanel

我想在JFrame的开始禁用JPanel 我知道我必须使用的代码,但是我不知道该放在哪里

public class Fenetre1 extends JFrame {
//code JFrame
    private class Affichage implements ActionListener {
//action
}
}
public class Test {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
Fenetre1 f = new Fenetre1 ();
f.panel.setEnabled(false);

    }

3 个答案:

答案 0 :(得分:1)

创建JPanel时可以设置setEnabled(false)。如果要切换启用JPanel的功能,则可能应该使用侦听器。

Java文档(https://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html)中的注释

  • 注意:禁用组件不会禁用其子代。

  • 注意:禁用轻量级组件不会阻止其接收MouseEvent。

    JFrame jframe = new JFrame();
    
    JPanel jpanel = new JPanel();
    jpanel.setEnabled(false);
    
    jframe.add(jpanel);
    

答案 1 :(得分:0)

也许.as-console {background-color:black !important; color:lime;} .as-console-wrapper {max-height:100% !important; top:0;}不能聚焦,但public class TokenAuthenticate : Attribute, IAuthenticationFilter { public bool AllowMultiple { get { return false; } } public async Task AuthenticateAsync(HttpAuthenticationContext context, CancellationToken cancellationToken) { try { IAuthService _authService = context.ActionContext.ControllerContext.Configuration .DependencyResolver.GetService(typeof(IAuthService)) as IAuthService; HttpRequestMessage request = context.Request; AuthenticationHeaderValue authorization = request.Headers.Authorization; if (authorization == null) { context.ErrorResult = new AuthenticationFailureResult("Missing autorization header", request); return; } if (authorization.Scheme != "Bearer") { context.ErrorResult = new AuthenticationFailureResult("Invalid autorization scheme", request); return; } if (String.IsNullOrEmpty(authorization.Parameter)) { context.ErrorResult = new AuthenticationFailureResult("Missing Token", request); return; } Boolean correctToken = await _authService.ValidateTokenAsync(authorization.Parameter); if(!correctToken) context.ErrorResult = new AuthenticationFailureResult("Invalid Token", request); } catch (Exception ex) { context.ErrorResult = new AuthenticationFailureResult("Exception: \n" + ex.Message, context.Request); } } } JPanel之类的 Object 可以聚焦。

如果您有JTextField中的某些对象,请使用JTextArea

答案 2 :(得分:0)

您的回答使我有些受启发,我在JPanel中使用了一个组件表 因此,我遍历整个表格并禁用了每个组件 我将代码放在继承了JFrame的类中:

 for(int j= 0;j<tab_component.length;j++) 
            {
                    tab_buttonsOperateur[j].setEnabled(false);
            } 

仍然感谢