Extending JLabel in Java Swing to use a given font (super usage in extended classes)
I am trying to create a new class JXLabel
which inherits JLabel
. Difference is that this extended class will assign a default font for the label.
If I try this:
public class JXLabel extends JLabel {
Font f = new Font("Segoe UI", Font.PLAIN, 6);
public JXLabel() {
super();
this.setFont(f);
}
public JXLabel(Icon icon) {
super(icon);
this.setFont(f);
}
public JXLabel(Icon icon, int horizontalAlignment) {
super(icon, horizontalAlignment);
this.setFont(f);
}
public JXLabel(String text) {
super(text);
this.setFont(f);
}
public JXLabel(String text, Icon icon, int horizontalAlignment) {
super(text, icon, horizontalAlignment);
this.setFont(f);
}
public JXLabel(String text, int horizontalAlignment) {
super(text, horizontalAlignment);
this.setFont(f);
}
}
I would expect new labels created as JXLabel to have this default font, but they do not.
If I create a regular JLabel and do:
myLabel.setFont(new Font("Segoe UI", Font.PLAIN, 6));
It works. Any tip on what is wrong in the extended class? Thanks.
java swing fonts jlabel
add a comment |
I am trying to create a new class JXLabel
which inherits JLabel
. Difference is that this extended class will assign a default font for the label.
If I try this:
public class JXLabel extends JLabel {
Font f = new Font("Segoe UI", Font.PLAIN, 6);
public JXLabel() {
super();
this.setFont(f);
}
public JXLabel(Icon icon) {
super(icon);
this.setFont(f);
}
public JXLabel(Icon icon, int horizontalAlignment) {
super(icon, horizontalAlignment);
this.setFont(f);
}
public JXLabel(String text) {
super(text);
this.setFont(f);
}
public JXLabel(String text, Icon icon, int horizontalAlignment) {
super(text, icon, horizontalAlignment);
this.setFont(f);
}
public JXLabel(String text, int horizontalAlignment) {
super(text, horizontalAlignment);
this.setFont(f);
}
}
I would expect new labels created as JXLabel to have this default font, but they do not.
If I create a regular JLabel and do:
myLabel.setFont(new Font("Segoe UI", Font.PLAIN, 6));
It works. Any tip on what is wrong in the extended class? Thanks.
java swing fonts jlabel
For better help sooner, edit to add a Minimal, Complete, and Verifiable example or Short, Self Contained, Correct Example.
– Andrew Thompson
Nov 24 '18 at 5:36
add a comment |
I am trying to create a new class JXLabel
which inherits JLabel
. Difference is that this extended class will assign a default font for the label.
If I try this:
public class JXLabel extends JLabel {
Font f = new Font("Segoe UI", Font.PLAIN, 6);
public JXLabel() {
super();
this.setFont(f);
}
public JXLabel(Icon icon) {
super(icon);
this.setFont(f);
}
public JXLabel(Icon icon, int horizontalAlignment) {
super(icon, horizontalAlignment);
this.setFont(f);
}
public JXLabel(String text) {
super(text);
this.setFont(f);
}
public JXLabel(String text, Icon icon, int horizontalAlignment) {
super(text, icon, horizontalAlignment);
this.setFont(f);
}
public JXLabel(String text, int horizontalAlignment) {
super(text, horizontalAlignment);
this.setFont(f);
}
}
I would expect new labels created as JXLabel to have this default font, but they do not.
If I create a regular JLabel and do:
myLabel.setFont(new Font("Segoe UI", Font.PLAIN, 6));
It works. Any tip on what is wrong in the extended class? Thanks.
java swing fonts jlabel
I am trying to create a new class JXLabel
which inherits JLabel
. Difference is that this extended class will assign a default font for the label.
If I try this:
public class JXLabel extends JLabel {
Font f = new Font("Segoe UI", Font.PLAIN, 6);
public JXLabel() {
super();
this.setFont(f);
}
public JXLabel(Icon icon) {
super(icon);
this.setFont(f);
}
public JXLabel(Icon icon, int horizontalAlignment) {
super(icon, horizontalAlignment);
this.setFont(f);
}
public JXLabel(String text) {
super(text);
this.setFont(f);
}
public JXLabel(String text, Icon icon, int horizontalAlignment) {
super(text, icon, horizontalAlignment);
this.setFont(f);
}
public JXLabel(String text, int horizontalAlignment) {
super(text, horizontalAlignment);
this.setFont(f);
}
}
I would expect new labels created as JXLabel to have this default font, but they do not.
If I create a regular JLabel and do:
myLabel.setFont(new Font("Segoe UI", Font.PLAIN, 6));
It works. Any tip on what is wrong in the extended class? Thanks.
java swing fonts jlabel
java swing fonts jlabel
edited Nov 24 '18 at 5:31
![](https://i.stack.imgur.com/yOfDr.png?s=32&g=1)
![](https://i.stack.imgur.com/yOfDr.png?s=32&g=1)
Andrew Thompson
153k27163338
153k27163338
asked Nov 24 '18 at 5:15
M.E.M.E.
1,092628
1,092628
For better help sooner, edit to add a Minimal, Complete, and Verifiable example or Short, Self Contained, Correct Example.
– Andrew Thompson
Nov 24 '18 at 5:36
add a comment |
For better help sooner, edit to add a Minimal, Complete, and Verifiable example or Short, Self Contained, Correct Example.
– Andrew Thompson
Nov 24 '18 at 5:36
For better help sooner, edit to add a Minimal, Complete, and Verifiable example or Short, Self Contained, Correct Example.
– Andrew Thompson
Nov 24 '18 at 5:36
For better help sooner, edit to add a Minimal, Complete, and Verifiable example or Short, Self Contained, Correct Example.
– Andrew Thompson
Nov 24 '18 at 5:36
add a comment |
1 Answer
1
active
oldest
votes
Here is a MCVE of the above code, testing the assertion that one way it works, while the other it doesn't. Here, it works by either setting the font of a standard JLabel
or by using a JXLabel
.
See if you can:
- Confirm the result on your machine
- If it works as expected, track down the difference in the original code.
import java.awt.*;
import javax.swing.*;
public class JXLabelTest {
public static void main(String args) {
Runnable r = () -> {
String s = "The quick brown fox jumps over the lazy dog";
JLabel myLabel = new JLabel(s);
myLabel.setFont(new Font("Segoe UI", Font.PLAIN, 6));
JOptionPane.showMessageDialog(null, myLabel);
JOptionPane.showMessageDialog(null, new JXLabel(s));
};
SwingUtilities.invokeLater(r);
}
}
class JXLabel extends JLabel {
Font f = new Font("Segoe UI", Font.PLAIN, 6);
public JXLabel() {
super();
this.setFont(f);
}
public JXLabel(Icon icon) {
super(icon);
this.setFont(f);
}
public JXLabel(Icon icon, int horizontalAlignment) {
super(icon, horizontalAlignment);
this.setFont(f);
}
public JXLabel(String text) {
super(text);
this.setFont(f);
}
public JXLabel(String text, Icon icon, int horizontalAlignment) {
super(text, icon, horizontalAlignment);
this.setFont(f);
}
public JXLabel(String text, int horizontalAlignment) {
super(text, horizontalAlignment);
this.setFont(f);
}
}
1
This works and helped me to locate the issue.
– M.E.
Nov 26 '18 at 14:30
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53455375%2fextending-jlabel-in-java-swing-to-use-a-given-font-super-usage-in-extended-clas%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Here is a MCVE of the above code, testing the assertion that one way it works, while the other it doesn't. Here, it works by either setting the font of a standard JLabel
or by using a JXLabel
.
See if you can:
- Confirm the result on your machine
- If it works as expected, track down the difference in the original code.
import java.awt.*;
import javax.swing.*;
public class JXLabelTest {
public static void main(String args) {
Runnable r = () -> {
String s = "The quick brown fox jumps over the lazy dog";
JLabel myLabel = new JLabel(s);
myLabel.setFont(new Font("Segoe UI", Font.PLAIN, 6));
JOptionPane.showMessageDialog(null, myLabel);
JOptionPane.showMessageDialog(null, new JXLabel(s));
};
SwingUtilities.invokeLater(r);
}
}
class JXLabel extends JLabel {
Font f = new Font("Segoe UI", Font.PLAIN, 6);
public JXLabel() {
super();
this.setFont(f);
}
public JXLabel(Icon icon) {
super(icon);
this.setFont(f);
}
public JXLabel(Icon icon, int horizontalAlignment) {
super(icon, horizontalAlignment);
this.setFont(f);
}
public JXLabel(String text) {
super(text);
this.setFont(f);
}
public JXLabel(String text, Icon icon, int horizontalAlignment) {
super(text, icon, horizontalAlignment);
this.setFont(f);
}
public JXLabel(String text, int horizontalAlignment) {
super(text, horizontalAlignment);
this.setFont(f);
}
}
1
This works and helped me to locate the issue.
– M.E.
Nov 26 '18 at 14:30
add a comment |
Here is a MCVE of the above code, testing the assertion that one way it works, while the other it doesn't. Here, it works by either setting the font of a standard JLabel
or by using a JXLabel
.
See if you can:
- Confirm the result on your machine
- If it works as expected, track down the difference in the original code.
import java.awt.*;
import javax.swing.*;
public class JXLabelTest {
public static void main(String args) {
Runnable r = () -> {
String s = "The quick brown fox jumps over the lazy dog";
JLabel myLabel = new JLabel(s);
myLabel.setFont(new Font("Segoe UI", Font.PLAIN, 6));
JOptionPane.showMessageDialog(null, myLabel);
JOptionPane.showMessageDialog(null, new JXLabel(s));
};
SwingUtilities.invokeLater(r);
}
}
class JXLabel extends JLabel {
Font f = new Font("Segoe UI", Font.PLAIN, 6);
public JXLabel() {
super();
this.setFont(f);
}
public JXLabel(Icon icon) {
super(icon);
this.setFont(f);
}
public JXLabel(Icon icon, int horizontalAlignment) {
super(icon, horizontalAlignment);
this.setFont(f);
}
public JXLabel(String text) {
super(text);
this.setFont(f);
}
public JXLabel(String text, Icon icon, int horizontalAlignment) {
super(text, icon, horizontalAlignment);
this.setFont(f);
}
public JXLabel(String text, int horizontalAlignment) {
super(text, horizontalAlignment);
this.setFont(f);
}
}
1
This works and helped me to locate the issue.
– M.E.
Nov 26 '18 at 14:30
add a comment |
Here is a MCVE of the above code, testing the assertion that one way it works, while the other it doesn't. Here, it works by either setting the font of a standard JLabel
or by using a JXLabel
.
See if you can:
- Confirm the result on your machine
- If it works as expected, track down the difference in the original code.
import java.awt.*;
import javax.swing.*;
public class JXLabelTest {
public static void main(String args) {
Runnable r = () -> {
String s = "The quick brown fox jumps over the lazy dog";
JLabel myLabel = new JLabel(s);
myLabel.setFont(new Font("Segoe UI", Font.PLAIN, 6));
JOptionPane.showMessageDialog(null, myLabel);
JOptionPane.showMessageDialog(null, new JXLabel(s));
};
SwingUtilities.invokeLater(r);
}
}
class JXLabel extends JLabel {
Font f = new Font("Segoe UI", Font.PLAIN, 6);
public JXLabel() {
super();
this.setFont(f);
}
public JXLabel(Icon icon) {
super(icon);
this.setFont(f);
}
public JXLabel(Icon icon, int horizontalAlignment) {
super(icon, horizontalAlignment);
this.setFont(f);
}
public JXLabel(String text) {
super(text);
this.setFont(f);
}
public JXLabel(String text, Icon icon, int horizontalAlignment) {
super(text, icon, horizontalAlignment);
this.setFont(f);
}
public JXLabel(String text, int horizontalAlignment) {
super(text, horizontalAlignment);
this.setFont(f);
}
}
Here is a MCVE of the above code, testing the assertion that one way it works, while the other it doesn't. Here, it works by either setting the font of a standard JLabel
or by using a JXLabel
.
See if you can:
- Confirm the result on your machine
- If it works as expected, track down the difference in the original code.
import java.awt.*;
import javax.swing.*;
public class JXLabelTest {
public static void main(String args) {
Runnable r = () -> {
String s = "The quick brown fox jumps over the lazy dog";
JLabel myLabel = new JLabel(s);
myLabel.setFont(new Font("Segoe UI", Font.PLAIN, 6));
JOptionPane.showMessageDialog(null, myLabel);
JOptionPane.showMessageDialog(null, new JXLabel(s));
};
SwingUtilities.invokeLater(r);
}
}
class JXLabel extends JLabel {
Font f = new Font("Segoe UI", Font.PLAIN, 6);
public JXLabel() {
super();
this.setFont(f);
}
public JXLabel(Icon icon) {
super(icon);
this.setFont(f);
}
public JXLabel(Icon icon, int horizontalAlignment) {
super(icon, horizontalAlignment);
this.setFont(f);
}
public JXLabel(String text) {
super(text);
this.setFont(f);
}
public JXLabel(String text, Icon icon, int horizontalAlignment) {
super(text, icon, horizontalAlignment);
this.setFont(f);
}
public JXLabel(String text, int horizontalAlignment) {
super(text, horizontalAlignment);
this.setFont(f);
}
}
edited Nov 26 '18 at 14:41
answered Nov 24 '18 at 5:35
![](https://i.stack.imgur.com/yOfDr.png?s=32&g=1)
![](https://i.stack.imgur.com/yOfDr.png?s=32&g=1)
Andrew ThompsonAndrew Thompson
153k27163338
153k27163338
1
This works and helped me to locate the issue.
– M.E.
Nov 26 '18 at 14:30
add a comment |
1
This works and helped me to locate the issue.
– M.E.
Nov 26 '18 at 14:30
1
1
This works and helped me to locate the issue.
– M.E.
Nov 26 '18 at 14:30
This works and helped me to locate the issue.
– M.E.
Nov 26 '18 at 14:30
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53455375%2fextending-jlabel-in-java-swing-to-use-a-given-font-super-usage-in-extended-clas%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
For better help sooner, edit to add a Minimal, Complete, and Verifiable example or Short, Self Contained, Correct Example.
– Andrew Thompson
Nov 24 '18 at 5:36