###前提・実現したいこと
Javaを勉強しているものです
今回Swingを使ってGUIアプリケーションを作りたいのですが
製作中にエラーが出てしまい、手詰まりとなってしまいました
皆様のお力をお借りしたいです
条件
0. パネルを2枚に横で分割
0. 上の段をさらに縦に3つに分割
0. 左からボタン、ラベル1、ラベル2を配置
0. ボタンにはマウスカーソルが入ったときと出たときにイベントを発生
0. ラベル1にはマウスのボタンを押したときとはなしたときにイベントを発生
0. ラベル2にはカーソルを動かしたときとドラッグしたときにイベントを発生
0. パネル下段に各イベントのメッセージを表示する
###発生している問題・エラーメッセージ
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Kadai06.Kadai006.getJButton(Kadai006.java:111)
at Kadai06.Kadai006.getJContentPane1(Kadai006.java:54)
at Kadai06.Kadai006.getJFrame(Kadai006.java:43)
at Kadai06.Kadai006.access$0(Kadai006.java:29)
at Kadai06.Kadai006$1.run(Kadai006.java:190)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:672)
at java.awt.EventQueue.access$400(EventQueue.java:81)
at java.awt.EventQueue$2.run(EventQueue.java:633)
at java.awt.EventQueue$2.run(EventQueue.java:631)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:642)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
###該当のソースコード
Java
1package Kadai06; 2 3 4import java.awt.GridLayout; 5import java.awt.event.MouseAdapter; 6import java.awt.event.MouseEvent; 7 8import javax.swing.JButton; 9import javax.swing.JFrame; 10import javax.swing.JLabel; 11import javax.swing.JPanel; 12import javax.swing.SwingUtilities; 13import javax.swing.event.MouseInputAdapter; 14 15public class Kadai006 { 16 17 private JFrame jf = null; 18 private JPanel cp = null; 19 private JPanel cp1 = null; 20 21 private JLabel jl = null; 22 private JButton jb1 = null; 23 private JLabel jl1 = null; 24 private JLabel jl2 = null; 25 public String s = null; 26 public String s1 = null; 27 28 29 private JFrame getJFrame() { 30 31 if(jf == null) { 32 jf = new JFrame(); 33 jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 34 jf.setSize(480, 360); 35 jf.setLocationRelativeTo(null); 36 JPanel cp2 = (JPanel) jf.getContentPane(); 37 38 cp2.setLayout(new GridLayout(2,2)); 39 cp2 = (JPanel) jf.getContentPane(); 40 41 jf.setTitle("課題6"); 42 43 jf.getContentPane().add(getJContentPane1()); 44 jf.getContentPane().add(getJContentPane2()); 45 46 47 } 48 return jf; 49} 50 private JPanel getJContentPane1() { 51 if (cp == null) { 52 cp = new JPanel(); 53 cp.setLayout(new GridLayout(1,3)); 54 cp.add(getJButton()); 55 cp.add(getJLabel1()); 56 cp.add(getJLabel2()); 57 58 59 } 60 return cp; 61 } 62 63 private JPanel getJContentPane2() { 64 if (cp1 == null) { 65 66 cp1.setLayout(new GridLayout()); 67 cp1.add(getJLabel()); 68 } 69 return cp1; 70 } 71 72 73 private JLabel getJLabel() { 74 if (jl == null) { 75 jl = new JLabel(); 76 jl.setText("s"); 77 } 78 return jl; 79 80 } 81 82 private JLabel getJLabel1() { 83 if (jl == null) { 84 jl1 = new JLabel(); 85 jl1.setText("ラベル1"); 86 jl1.addMouseListener(new MouseListener()); 87 } 88 return jl1; 89 90 } 91 private JLabel getJLabel2() { 92 if (jl == null) { 93 jl2 = new JLabel(); 94 jl2.setText("ラベル2"); 95 jl2.addMouseMotionListener(new MouseChecker()); 96 jl2.addMouseListener(new MouseListener()); 97 } 98 return jl2; 99 } 100 private JButton getJButton() { 101 if (jb1 == null) 102 { 103 jb1 = new JButton(); 104 jb1.setText("ボタン"); 105 106 107 108 109 110 jb1.addMouseListener(new MouseListener()); 111 jl.setText("s"); 112 } 113 114 return jb1; 115 116 117 } 118 119 public class MouseChecker extends MouseInputAdapter 120 { 121 public void mouseMoved(MouseEvent e) 122 { 123 int x = e.getX(); 124 int y = e.getY(); 125 s="MOUSE_MOVED:("; 126 s1=Integer.toString(x); 127 s=s+s1; 128 s=s+","; 129 s1=Integer.toString(y); 130 s=s+s1; 131 s=s+")"; 132 } 133 134 public void mouseDragged(MouseEvent e) 135 { 136 int x = e.getX(); 137 int y = e.getY(); 138 s="MOUSE_MOVED:("; 139 s1=Integer.toString(x); 140 s=s+s1; 141 s=s+","; 142 s1=Integer.toString(y); 143 s=s+s1; 144 s=s+")"; 145 s=s+"-"; 146 147 x = e.getX(); 148 y = e.getY(); 149 s="MOUSE_MOVED:("; 150 s1=Integer.toString(x); 151 s=s+s1; 152 s=s+","; 153 s1=Integer.toString(y); 154 s=s+s1; 155 s=s+")"; 156 } 157 } 158 159 160 public class MouseListener extends MouseAdapter 161 { 162 public void mouseEntered(MouseEvent eve) 163 { 164 s="MOUSE_ENTERED"; 165 } 166 167 public void mouseExited(MouseEvent eve) 168 { 169 s="MOUSE_EXITED"; 170 } 171 172 public void mouseClicked(MouseEvent eve) 173 { 174 s="MOUSE_CLICKED"; 175 } 176 177 public void mouseReleased(MouseEvent eve) 178 { 179 s="MOUSE_RELEASED"; 180 } 181 } 182 183 184 185 186 public static void main(String[] args) { 187 SwingUtilities.invokeLater(new Runnable() { 188 public void run() { 189 Kadai006 application = new Kadai006(); 190 application.getJFrame().setVisible(true); 191 } 192 }); 193 } 194}
###試したこと
浅はかな知識ではありますが、ヌルポインタとエラーコードから読めたので、宣言を変更したりしました
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。