import java.awt.BorderLayout;
import java.awt.Color;
+import java.awt.Component;
import java.awt.Dimension;
import java.awt.FontMetrics;
import java.awt.Graphics;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
+import javax.swing.JTextPane;
import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import javax.swing.event.HyperlinkEvent.EventType;
import javax.swing.event.InternalFrameAdapter;
import javax.swing.event.InternalFrameEvent;
+import javax.swing.text.JTextComponent;
import org.stackoverflowusers.file.WindowsShortcut;
public void nonBlockingDialog(String title, String message, String button,
int type, boolean scrollable, boolean modal)
{
- nonBlockingDialog(32, 2, title, message, button, type, scrollable,
- modal);
+ nonBlockingDialog(32, 2, title, message, null, button, type, scrollable,
+ false, modal);
}
public void nonBlockingDialog(int width, int height, String title,
- String message, String button, int type, boolean scrollable,
- boolean modal)
+ String message, String boxtext, String button, int type,
+ boolean scrollable, boolean html, boolean modal)
{
if (type < 0)
{
type = JvOptionPane.WARNING_MESSAGE;
}
- JTextArea jta = new JTextArea(height, width);
- // jta.setLineWrap(true);
- jta.setEditable(false);
- jta.setWrapStyleWord(true);
- jta.setAutoscrolls(true);
- jta.setText(message);
+ JLabel jl = new JLabel(message);
+
+ JTextComponent jtc = null;
+ if (html)
+ {
+ JTextPane jtp = new JTextPane();
+ jtp.setContentType("text/html");
+ jtp.setEditable(false);
+ jtp.setAutoscrolls(true);
+ jtp.setText(boxtext);
+
+ jtc = jtp;
+ }
+ else
+ {
+ JTextArea jta = new JTextArea(height, width);
+ // jta.setLineWrap(true);
+ jta.setEditable(false);
+ jta.setWrapStyleWord(true);
+ jta.setAutoscrolls(true);
+ jta.setText(boxtext);
+
+ jtc = jta;
+ }
JScrollPane jsp = scrollable
- ? new JScrollPane(jta, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
+ ? new JScrollPane(jtc, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED)
: null;
JvOptionPane jvp = JvOptionPane.newOptionDialog(this);
+
+ JPanel jp = new JPanel();
+ jp.setLayout(new BoxLayout(jp, BoxLayout.Y_AXIS));
+
+ if (message != null)
+ {
+ jl.setAlignmentX(Component.LEFT_ALIGNMENT);
+ jp.add(jl);
+ }
+ if (boxtext != null)
+ {
+ if (scrollable)
+ {
+ jsp.setAlignmentX(Component.LEFT_ALIGNMENT);
+ jp.add(jsp);
+ }
+ else
+ {
+ jtc.setAlignmentX(Component.LEFT_ALIGNMENT);
+ jp.add(jtc);
+ }
+ }
+
jvp.setResponseHandler(JOptionPane.YES_OPTION, () -> {
});
- jvp.showDialogOnTopAsync(this, scrollable ? jsp : jta, title,
- JOptionPane.YES_OPTION, type, null, new Object[]
+ jvp.showDialogOnTopAsync(this, jp, title, JOptionPane.YES_OPTION, type,
+ null, new Object[]
{ button }, button, modal, null, false);
}