由于图形初始化而导致AWT-EventQueue-0 NullPointerException

时间:2018-11-19 15:20:33

标签: java swing graphics nullpointerexception graphics2d

(我是新来的,如果我忘记写任何重要信息,对不起)。 我想通过AccuWeather API可视化天气,我认为Graphics g的初始化工作一直困扰着我。

这就是我的病历:

public class Draw extends JFrame {

    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    Graphics g;

我尝试了Graphics g = new Graphics();,但因为Graphics g是静态的,所以没有用。

这是我的绘画方法的一部分:

public void paint (Double[] weather, String sender, Graphics g) {

        super.paint(g);
        Toolkit tk = Toolkit.getDefaultToolkit();

        if (sender.equals("index5_Button")) {

            Graphics2D stargazing = (Graphics2D) g;
            ((Graphics2D) g).setBackground(Color.BLACK);

这就是油漆的要求:

paint(weatherValue, sender, g);

显然,它不能正确初始化g,但我不知道如何解决它。

非常感谢您提前提供的帮助!

1 个答案:

答案 0 :(得分:1)

  

我尝试了Graphics g = new Graphics();

您不应该尝试初始化组件的 class App extends React.Component { render() { return( <div> <Navbar/> </div> ); } } class Navbar extends React.Component { constructor() { super(); this.state = { burgerOn: false } } clickHandler(open) { this.setState({burgerOn: open}); } render() { return( <div> <header> <nav class="navbar navbar-custom sticky-top"> <a class="navbar-brand" href="#">TO DO LIST</a> <a class="burger-menu" href="#"><img src='/images/hamburger-icon.png' onClick={() => this.clickHandler(true)}></img></a> </nav> </header> <div> {this.state.burgerOn ? <Parent/> : null} </div> </div> ); } } class Parent extends React.Component { constructor() { super(); this.state = { burgerOn: "burger-right" }; } render() { return ( <div class={this.state.burgerOn}> <div class="container"> <form > <div class="form-group task-title"> <label for="title"> Task Title </label> <input type="title" class="form-control" placeholder="Enter Task Title"></input> </div> <div class="form-group task-desc"> <label for="desc">Task Description</label> <textarea type="text" class="form-control" id="desc" placeholder="Enter Task Description" rows="5"></textarea> </div> </form> <div> <button type="button" class=" task-btn btn btn-primary">Create</button> </div> </div> </div> ); } } ReactDOM.render(<App/>, app); 对象。 Swing将创建Graphics对象,并在重新粉刷组件时将其传递给组件。

通过覆盖Graphics的{​​{1}}方法来完成自定义绘画。然后将面板添加到JFrame`。

paintComponent(...)

阅读Custom Painting上Swing教程中的部分,以获取更多信息和工作示例,以帮助您入门。这些教程将向您展示如何更好地构建类。