package invisibleButton;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.Toolkit;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.border.EmptyBorder;
public class InvisibleButton {
public static void main
(final String[] args
) { final JButton submitAnswers
= createSubmitAnswersButton
(); final JPanel instructionsPanel
= createInstructionsPanel
();
final JPanel testContentPanel
= createContentPanel
(); testContentPanel.
add(instructionsPanel,
BorderLayout.
NORTH);
final JScrollPane scrollingContentPane
= createScrollPaneFor
(testContentPanel
);
final JFrame testFrame
= createJFrame
();
testFrame.setVisible(true);
}
testScrollPane.
setHorizontalScrollBarPolicy(JScrollPane.
HORIZONTAL_SCROLLBAR_NEVER); testScrollPane.getVerticalScrollBar().setUnitIncrement(16);
return testScrollPane;
}
private static JFrame createJFrame
() {
try {
testFrame.
setIconImage(ImageIO.
read(new File("src/icon.png"))); }
e1.printStackTrace();
}
testFrame.setLocation(screenDimensions.width / 16,screenDimensions.height / 14);
final Insets insets
= testFrame.
getInsets(); testFrame.setSize(1200 + insets.left + insets.right, 400 + insets.top + 250 + insets.bottom);
testFrame.setResizable(false);
testFrame.
getContentPane().
setBackground(new Color(75,
0,
130));
return testFrame;
}
private static JButton createSubmitAnswersButton
() {
submitAnswers.setVisible(true);
submitAnswers.
setBorder(new EmptyBorder(10,
400,
10,
400));
return submitAnswers;
}
private static JPanel createInstructionsPanel
() {
instructionsPanel.
setBackground(new Color(75,
0,
130));
return instructionsPanel;
}
private static JPanel createContentPanel
() {
testContentPanel.
setBackground(new Color(75,
0,
130)); testContentPanel.
setSize(new Dimension(900,
2060)); testContentPanel.
setPreferredSize(new Dimension(900,
2060));
return testContentPanel;
}
}
cGFja2FnZSBpbnZpc2libGVCdXR0b247CgppbXBvcnQgamF2YS5hd3QuQm9yZGVyTGF5b3V0OwppbXBvcnQgamF2YS5hd3QuQ29sb3I7CmltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CmltcG9ydCBqYXZhLmF3dC5EaW1lbnNpb247CmltcG9ydCBqYXZhLmF3dC5JbnNldHM7CmltcG9ydCBqYXZhLmF3dC5Ub29sa2l0OwppbXBvcnQgamF2YS5pby5GaWxlOwppbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKCmltcG9ydCBqYXZheC5pbWFnZWlvLkltYWdlSU87CmltcG9ydCBqYXZheC5zd2luZy5KQnV0dG9uOwppbXBvcnQgamF2YXguc3dpbmcuSkZyYW1lOwppbXBvcnQgamF2YXguc3dpbmcuSkxhYmVsOwppbXBvcnQgamF2YXguc3dpbmcuSlBhbmVsOwppbXBvcnQgamF2YXguc3dpbmcuSlNjcm9sbFBhbmU7CmltcG9ydCBqYXZheC5zd2luZy5ib3JkZXIuRW1wdHlCb3JkZXI7CgpwdWJsaWMgY2xhc3MgSW52aXNpYmxlQnV0dG9uIHsKCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihmaW5hbCBTdHJpbmdbXSBhcmdzKSB7CgkJZmluYWwgSkJ1dHRvbiBzdWJtaXRBbnN3ZXJzID0gY3JlYXRlU3VibWl0QW5zd2Vyc0J1dHRvbigpOwoJCWZpbmFsIEpQYW5lbCBpbnN0cnVjdGlvbnNQYW5lbCA9IGNyZWF0ZUluc3RydWN0aW9uc1BhbmVsKCk7CgoJCWZpbmFsIEpQYW5lbCB0ZXN0Q29udGVudFBhbmVsID0gY3JlYXRlQ29udGVudFBhbmVsKCk7CgkJdGVzdENvbnRlbnRQYW5lbC5hZGQoaW5zdHJ1Y3Rpb25zUGFuZWwsIEJvcmRlckxheW91dC5OT1JUSCk7CgkJdGVzdENvbnRlbnRQYW5lbC5hZGQoc3VibWl0QW5zd2VycywgQm9yZGVyTGF5b3V0LlNPVVRIKTsKCgkJZmluYWwgSlNjcm9sbFBhbmUgc2Nyb2xsaW5nQ29udGVudFBhbmUgPSBjcmVhdGVTY3JvbGxQYW5lRm9yKHRlc3RDb250ZW50UGFuZWwpOwoKCQlmaW5hbCBKRnJhbWUgdGVzdEZyYW1lID0gY3JlYXRlSkZyYW1lKCk7CgkJdGVzdEZyYW1lLmFkZChzY3JvbGxpbmdDb250ZW50UGFuZSwgQm9yZGVyTGF5b3V0LkNFTlRFUik7CgoJCXRlc3RGcmFtZS5zZXRWaXNpYmxlKHRydWUpOwoJfQoKCXByaXZhdGUgc3RhdGljIEpTY3JvbGxQYW5lIGNyZWF0ZVNjcm9sbFBhbmVGb3IoZmluYWwgQ29tcG9uZW50IGNvbXApIHsKCQlmaW5hbCBKU2Nyb2xsUGFuZSB0ZXN0U2Nyb2xsUGFuZSA9IG5ldyBKU2Nyb2xsUGFuZShjb21wKTsKCQl0ZXN0U2Nyb2xsUGFuZS5zZXRIb3Jpem9udGFsU2Nyb2xsQmFyUG9saWN5KEpTY3JvbGxQYW5lLkhPUklaT05UQUxfU0NST0xMQkFSX05FVkVSKTsKCQl0ZXN0U2Nyb2xsUGFuZS5nZXRWZXJ0aWNhbFNjcm9sbEJhcigpLnNldFVuaXRJbmNyZW1lbnQoMTYpOwoJCXJldHVybiB0ZXN0U2Nyb2xsUGFuZTsKCX0KCglwcml2YXRlIHN0YXRpYyBKRnJhbWUgY3JlYXRlSkZyYW1lKCkgewoJCWZpbmFsIEpGcmFtZSB0ZXN0RnJhbWUgPSBuZXcgSkZyYW1lKCJ0ZXN0aW5nLi4uMSwyLDMiKTsKCgkJdHJ5IHsKCQkJdGVzdEZyYW1lLnNldEljb25JbWFnZShJbWFnZUlPLnJlYWQobmV3IEZpbGUoInNyYy9pY29uLnBuZyIpKSk7CgkJfQoJCWNhdGNoIChmaW5hbCBJT0V4Y2VwdGlvbiBlMSkgewoJCQllMS5wcmludFN0YWNrVHJhY2UoKTsKCQl9CgoJCWZpbmFsIERpbWVuc2lvbiBzY3JlZW5EaW1lbnNpb25zID0gVG9vbGtpdC5nZXREZWZhdWx0VG9vbGtpdCgpLmdldFNjcmVlblNpemUoKTsKCQl0ZXN0RnJhbWUuc2V0TG9jYXRpb24oc2NyZWVuRGltZW5zaW9ucy53aWR0aCAvIDE2LHNjcmVlbkRpbWVuc2lvbnMuaGVpZ2h0IC8gMTQpOwoKCQlmaW5hbCBJbnNldHMgaW5zZXRzID0gdGVzdEZyYW1lLmdldEluc2V0cygpOwoJCXRlc3RGcmFtZS5zZXRTaXplKDEyMDAgKyBpbnNldHMubGVmdCArIGluc2V0cy5yaWdodCwgNDAwICsgaW5zZXRzLnRvcCArIDI1MCArIGluc2V0cy5ib3R0b20pOwoKCQl0ZXN0RnJhbWUuc2V0UmVzaXphYmxlKGZhbHNlKTsKCgkJdGVzdEZyYW1lLmdldENvbnRlbnRQYW5lKCkuc2V0QmFja2dyb3VuZChuZXcgQ29sb3IoNzUsIDAsIDEzMCkpOwoKCQl0ZXN0RnJhbWUuc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CgkJcmV0dXJuIHRlc3RGcmFtZTsKCX0KCglwcml2YXRlIHN0YXRpYyBKQnV0dG9uIGNyZWF0ZVN1Ym1pdEFuc3dlcnNCdXR0b24oKSB7CgkJZmluYWwgSkJ1dHRvbiBzdWJtaXRBbnN3ZXJzID0gbmV3IEpCdXR0b24oIlN1Ym1pdCBBbnN3ZXJzIik7CgoJCXN1Ym1pdEFuc3dlcnMuc2V0VmlzaWJsZSh0cnVlKTsKCQlzdWJtaXRBbnN3ZXJzLnNldEJvcmRlcihuZXcgRW1wdHlCb3JkZXIoMTAsIDQwMCwgMTAsIDQwMCkpOwoKCQlyZXR1cm4gc3VibWl0QW5zd2VyczsKCX0KCglwcml2YXRlIHN0YXRpYyBKUGFuZWwgY3JlYXRlSW5zdHJ1Y3Rpb25zUGFuZWwoKSB7CgkJZmluYWwgSlBhbmVsIGluc3RydWN0aW9uc1BhbmVsID0gbmV3IEpQYW5lbCgpOwoKCQlpbnN0cnVjdGlvbnNQYW5lbC5zZXRCYWNrZ3JvdW5kKG5ldyBDb2xvcig3NSwgMCwgMTMwKSk7CgkJaW5zdHJ1Y3Rpb25zUGFuZWwuc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CgoJCWluc3RydWN0aW9uc1BhbmVsLmFkZChuZXcgSkxhYmVsKCJTb21lIEluc3RydWN0aW9ucyIpLCBCb3JkZXJMYXlvdXQuQ0VOVEVSKTsKCgkJcmV0dXJuIGluc3RydWN0aW9uc1BhbmVsOwoJfQoKCXByaXZhdGUgc3RhdGljIEpQYW5lbCBjcmVhdGVDb250ZW50UGFuZWwoKSB7CgkJZmluYWwgSlBhbmVsIHRlc3RDb250ZW50UGFuZWwgPSBuZXcgSlBhbmVsKCk7CgoJCXRlc3RDb250ZW50UGFuZWwuc2V0QmFja2dyb3VuZChuZXcgQ29sb3IoNzUsIDAsIDEzMCkpOwoJCXRlc3RDb250ZW50UGFuZWwuc2V0U2l6ZShuZXcgRGltZW5zaW9uKDkwMCwyMDYwKSk7CgkJdGVzdENvbnRlbnRQYW5lbC5zZXRQcmVmZXJyZWRTaXplKG5ldyBEaW1lbnNpb24oOTAwLCAyMDYwKSk7CgkJdGVzdENvbnRlbnRQYW5lbC5zZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKCgkJcmV0dXJuIHRlc3RDb250ZW50UGFuZWw7Cgl9Cn0=